A tu propio ritmo

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.

Bootcamp

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.

Buscar en lecciones


IngresarEmpezar

Regístrate en 4Geeks

← Volver a Proyectos

Construye un API REST de StarWars

Dificultad

  • easy

Duración promedio

8 hrs

Tecnologías

  • REST

  • Flask

Dificultad

  • easy

Duración promedio

8 hrs

Tecnologías

Es recomendado desarrollar este proyecto en conjunto con el StarWars Blog Reading List, eventualmente ese front-end se integrará con la API que vas a desarrollar en este proyecto y tendrás una aplicación completamente funcional con front-end y back-end.

Hoy vamos a construir una API para administrar un blog (El StarWars Blog), los usuarios de este blog van a poder listar planetas, personajes, y agregar o eliminar favoritos.

Para permitir que los usuarios hagan todo esto, debemos seguir los siguientes pasos:

  1. Comienza por modelar la base de datos: crea una base de datos y las tablas necesarias para almacenar esa información, es posible que ya lo hayas hecho en el proyecto StarWars DataModeling en python/flask o node/express.
  2. Crea tus endpoints utilizando Flask o Express (según el lenguaje principal de tu clase).
  3. Prueba constantemente tus endpoints con Postman.

🌱 Cómo comenzar este proyecto

No clones este repositorio porque vamos a usar una plantilla diferente.

Recomendamos abrir el flask template o el express.js template usando un entorno de desarrollo como Codespaces (recomendado) o Gitpod. Alternativamente, puedes clonarlo en tu computadora local usando el comando git clone.

Estos son los repositorios que necesitas abrir o clonar:

1🐍 Para Python/Flask: 2https://github.com/4GeeksAcademy/flask-rest-hello 3 4👩🏽‍💻 Para Node/Express.js: 5https://github.com/4GeeksAcademy/expressjs-rest-hello

⚠ Si trabajas localmente debes tener una base de datos y Node.js o Python 3.7+ pero si usas Codespaces o Gitpod ya viene todo instalado.

🐍 Para Python: El boilerplate tiene un archivo README con instrucciones y un video de como usarlo y como construir una API. Puedes hacer este tutorial interactivo primero sobre como construir APIs con Flask.

👉 Por favor sigue estos pasos sobre cómo comenzar un proyecto de programación.

💡 Importante: Recuerda guardar y subir tu código a GitHub creando un nuevo repositorio, actualizando el remoto (git remote set-url origin <your new url>) y subiendo el código a tu nuevo repositorio usando los comandos add, commit y push desde la terminal de git.

📝 Instrucciones

Crea una API conectada a una base de datos e implemente los siguientes endpoints (muy similares a SWAPI.dev or SWAPI.tech):

  • [GET] /people Listar todos los registros de people en la base de datos.
  • [GET] /people/<int:people_id> Muestra la información de un solo personaje según su id.
  • [GET] /planets Listar todos los registros de planets en la base de datos.
  • [GET] /planets/<int:planet_id> Muestra la información de un solo planeta según su id.

Adicionalmente, necesitamos crear los siguientes endpoints para que podamos tener usuarios y favoritos en nuestro blog:

  • [GET] /users Listar todos los usuarios del blog.
  • [GET] /users/favorites Listar todos los favoritos que pertenecen al usuario actual.
  • [POST] /favorite/planet/<int:planet_id> Añade un nuevo planet favorito al usuario actual con el id = planet_id.
  • [POST] /favorite/people/<int:people_id> Añade un nuevo people favorito al usuario actual con el id = people_id.
  • [DELETE] /favorite/planet/<int:planet_id> Elimina un planet favorito con el id = planet_id.
  • [DELETE] /favorite/people/<int:people_id> Elimina un people favorito con el id = people_id.
  • Tu API actual no tiene un sistema de autenticación (todavía), es por eso que la única forma de crear usuarios es directamente en la base de datos usando el Flask admin.

Nota: Aquí hay un ejemplo en Postman: https://documenter.getpostman.com/view/2432393/TzRSgnTS#a4174b48-3fc8-46e3-bf82-19a08107666f

📖 Fundamentos

Este ejercicio te permitirá practicar las siguientes habilidades y conceptos:

  1. Construcción de APIs utilizando el standard REST (a.k.a: RESTful APIs).
  2. Construir una base de datos utilizando el ORM llamado SQLAlchemy o TypeORM.
  3. Utilizar y entender sistemas de migraciones de bases de datos con Alembic o las migraciones nativas de TypeORM (en el caso de node.js).

😎 Te sientes con confianza?

Los siguientes requerimientos no son necesarios para completar el proyecto satisfactoriamente, pero puedes desarrollarlos para continuar tu aprendizaje si te sientes con suficiente confianza.

+4 Crea endpoints para agregar (POST), modificar (PUT) y eliminar (DELETE) planets y people. De esta manera, toda la base de datos va a poder ser administrada vía API en vez de depender del admin de Flask.

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 proyectos similares

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 proyectos similares

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