Bootcamps

Explora nuestra extensa colección de cursos diseñados para ayudarte a dominar varios temas y habilidades. Ya seas un principiante o un aprendiz avanzado, aquí hay algo para todos.

Academia

Aprende en vivo

Únete a nosotros en nuestros talleres gratuitos, webinars y otros eventos para aprender más sobre nuestros programas y comenzar tu camino para convertirte en desarrollador.

Próximos eventos en vivo

Catálogo de contenidos

Para los geeks autodidactas, este es nuestro extenso catálogo de contenido con todos los materiales y tutoriales que hemos desarrollado hasta el día de hoy.

Tiene sentido comenzar a aprender leyendo y viendo videos sobre los fundamentos y cómo funcionan las cosas.

Full-Stack Software Developer - 16w

Data Science and Machine Learning - 16 wks

Buscar en lecciones


IngresarEmpezar

Regístrate en 4Geeks

← Volver a Proyectos

Family Static API with Flask

Dificultad

  • easy

Duración promedio

8 hrs

Tecnologías

  • Data Structures

  • Serialization

  • Python

  • json

  • Flask

  • REST

  • APIs

Dificultad

  • easy

Duración promedio

8 hrs

Tecnologías

Weekly Coding Challenge

Todas las semanas escogemos un proyecto de la vida real para que construyas tu portafolio y te prepares para conseguir un trabajo. Todos nuestros proyectos están construidos con ChatGPT como co-pilot!

Únete al reto

Podcast: Code Sets You Free

Un podcast de cultura tecnológica donde aprenderás a luchar contra los enemigos que te bloquean en tu camino para convertirte en un profesional exitoso en tecnología.

Escuchar el podcast

¡La familia "Jackson" necesita una API estática! Necesitamos construir las estructuras de datos (data structures) y crear un API endpoint para interactuar con él utilizando Hoppscotch (recomendado) o Postman.

🌱 Cómo comenzar este proyecto

Este proyecto viene con los archivos necesarios para comenzar a trabajar de inmediato.

Recomendamos abrir este mismo repositorio usando un entorno de desarrollo como Codespaces (recomendado) o Gitpod. Alternativamente, puedes clonarlo en tu computadora local usando el comando git clone.

Este es el repositorio que necesitas abrir:

1https://github.com/breatheco-de/exercise-family-static-api

💻 Instalación

  1. Instala las dependencias del proyecto $ pipenv install.

  2. Entra dentro del virtual environment $ pipenv shell

  3. Inicia el servidor flask $ pipenv run start

✅ Autoevaluación

  • Evalúa tu código con el comando $ pipenv run test

📝 Instrucciones

  1. Crea el código necesario para desarrollar los API endpoints descritos más adelante.

  2. Los únicos dos archivos que tienes que editar son:

  • src/datastructure.py: Contiene la estructura de datos FamilyStructure que se encarga de manejar la familia.
  • src/app.py: Es el código de tu API, aquí debes agregar los endpoints (rutas) y la lógica de programación.
  1. Hemos preparado un conjunto de pruebas automatizadas que te darán una idea de si tu código es correcto, ejecuta las pruebas escribiendo $ pipenv run test en la línea de comandos (terminal o consola).

Estructuras de datos (Data structures)

Cada miembro de la familia Jackson debe ser un diccionario, equivalente a Objetos literales en JS - y tienen estos valores:

1+ id: Int 2+ first_name: String 3+ last_name: String (Siempre Jackson) 4+ age: Int > 0 5+ lucky_numbers: List of integers

La estructura de datos family será una clase con la siguiente estructura:

1class FamilyStructure: 2 def __init__(self, last_name): 3 self.last_name = last_name 4 self._next_id = 1 5 self._members = [] 6 7 # Este método genera un 'id' único al agregar miembros a la lista (no debes modificar esta función) 8 def _generate_id(self): 9 generated_id = self._next_id 10 self._next_id += 1 11 return generated_id 12 13 def add_member(self, member): 14 ## Debes implementar este método 15 ## Agrega un nuevo miembro a la lista de _members 16 pass 17 18 def delete_member(self, id): 19 ## Debes implementar este método 20 ## Recorre la lista y elimina el miembro con el id proporcionado 21 pass 22 23 def get_member(self, id): 24 ## Debes implementar este método 25 ## Recorre la lista y obtén el miembro con el id proporcionado 26 pass 27 28 def get_all_members(self, id): 29 return self._members

Nota: no olvides inicializar la clase: jackson_family = FamilyStructure('Jackson') antes de las rutas.

Estos son los miembros iniciales de la familia.

1John Jackson 233 Years old 3Lucky Numbers: 7, 13, 22 4 5Jane Jackson 635 Years old 7Lucky Numbers: 10, 14, 3 8 9Jimmy Jackson 105 Years old 11Lucky Numbers: 1

Endpoints

Esta API debe tener 4 endpoints, todos devuelven JSON:

1) Obtén todos los miembros de la familia:

Devuelve todos los miembros de la familia.

1GET /members 2 3status_code 200 si se realizó con éxito, 400 si hubo un error por parte del cliente, 500 si el servidor encuentra un error 4 5RESPONSE BODY (content-type: application/json): 6 7[] <!--- Lista de miembros de la familia -->

2) Recupera solo un miembro

Devuelve el miembro de la familia para el cual id == member_id.

1GET /member/<int:member_id> 2 3RESPONSE (content_type: application/json): 4 5status_code 200 si se realizó con éxito, 400 si hubo un error por parte del cliente, 500 si el servidor encuentra un error 6 7body: <!--- el objeto json del miembro de la familia --> 8{ 9 "id": Int, 10 "first_name": String, 11 "age": Int, 12 "lucky_numbers": List 13}

3) Añadir (POST) un miembro

Agrega un nuevo miembro a la estructura de datos de la familia.

1POST /member 2 3REQUEST BODY (content_type: application/json): 4{ 5 id: Int, 6 first_name: String, 7 age: Int, 8 lucky_numbers: [] 9} 10 11RESPONSE (content_type: application/json): 12 13status_code 200 si se realizó con éxito, 400 si hubo un error por parte del cliente, 500 si el servidor encuentra un error

4) ELIMINA un miembro

Elimina el miembro de la familia para el cual id == member_id.

1DELETE /member/<int:member_id> 2 3RESPONSE (content_type: application/json): 4 5status_code 200 si se realizó con éxito, 400 si hubo un error por parte del cliente, 500 si el servidor encuentra un error 6 7body: { 8 done: True 9}

Requisitos tecnológicos

  • Todas las solicitudes y respuestas deben estar en content/type: application/json
  • Los códigos de respuesta deben ser 200 para solicitudes exitosas, 400 para una solicitud incorrecta o 404 para no encontrados.
  • Este ejercicio no incluye una base de datos, todo se debe hacer en durante el tiempo de ejecución del programa (memoria RAM).

Este y otros proyectos son usados para aprender a programar por parte de los alumnos de 4Geeks Academy Coding Bootcamp realizado por Alejandro Sánchez y muchos otros contribuyentes. Conoce más sobre nuestros Cursos de Programación para convertirte en Full Stack Developer, o nuestro Data Science Bootcamp.

Regístrate para obtener acceso a archivos y video de la solución

Lo usaremos para darte acceso a la comunidad.
¿Ya tienes una cuenta? Inicia sesión aquí.

Dificultad

  • easy

Duración promedio

8 hrs

Tecnologías

Dificultad

  • easy

Duración promedio

8 hrs

Tecnologías

Dificultad

  • easy

Duración promedio

8 hrs

Tecnologías

Dificultad

  • easy

Duración promedio

8 hrs

Tecnologías

Regístrate para obtener acceso a archivos y video de la solución

Lo usaremos para darte acceso a la comunidad.
¿Ya tienes una cuenta? Inicia sesión aquí.

Dificultad

  • easy

Duración promedio

8 hrs

Tecnologías

Dificultad

  • easy

Duración promedio

8 hrs

Tecnologías

Material de apoyo

Para prepararte mejor para completar estos ejercicios, sugerimos los siguientes materiales

Ejercicio

Aprende a hacer requests HTTP con Python

Lección

Construyendo APIs REST utilizando Flask

Proyecto

Integrándose a una API usando Python

Weekly Coding Challenge

Todas las semanas escogemos un proyecto de la vida real para que construyas tu portafolio y te prepares para conseguir un trabajo. Todos nuestros proyectos están construidos con ChatGPT como co-pilot!

Únete al reto

Podcast: Code Sets You Free

Un podcast de cultura tecnológica donde aprenderás a luchar contra los enemigos que te bloquean en tu camino para convertirte en un profesional exitoso en tecnología.

Escuchar el podcast