4Geeks logo
4Geeks logo

Courses

Explore our extensive collection of courses designed to help you master various subjects and skills. Whether you're a beginner or an advanced learner, there's something here for everyone.

Coding 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.

Data Science and Machine Learning - 16 wks

Full-Stack Software Developer - 16w

Buscar en lecciones

IngresarEmpezar
← Volver a Proyectos

Build a StarWars REST API

Meta

Tutoriales y ejercicios de 4Geeks Coding Projects para personas que están aprendiendo a codificar o mejorando sus habilidades de codificación

Video tutorial

Dificultad

unknown

Repositorio

Clic para abrir

Video

No disponible

Demo en vivo

No disponible

Duración promedio

8 hrs

Tecnologías

  • REST

  • Python

    Flask

  • APIs

Es recomendado desarrollar este proyecto en conjunto con el StarWars Blog Reading List, eventualmente ese Front-End se integrará con el 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 un API para administrar un blog (El Starwars Blog), los usuarios de este blog van a poder listar planetas, personas, 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 StartWars DataModeling en python/flask o node/express
  2. Crea tus endpoints finales utilizando Flask o Express (según el idioma principal de tu clase).
  3. Prueba constantemente 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 una herramienta de aprovisionamiento 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:

🐍 Para Python/Flask:
https://github.com/4GeeksAcademy/flask-rest-hello

👩🏽‍💻 Para Node/Express.js:
https://github.com/4GeeksAcademy/expressjs-rest-hello

(si trabajas localmente debes tener una base de datos y Node.js o python 3.7+ pero puedes usar Gitpod, trae todo instalado)

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

👉 Por favor sigue estos pasos cómo comenzar un proyecto de codificació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 un 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> Listar la información de una sola people
  • [GET] /planets Listar los registros de planets en la base de datos
  • [GET] /planets/<int:planet_id> Listar la información de un solo planet

Adicionalmente, necesitamos crear los siguientes endpoints para que podamos tener usuarios 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 planet id = planet_id.
  • [POST] /favorite/people/<int:people_id> Añade una nueva people favorita al usuario actual con el people.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 una people favorita 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 API's utilizando el standard REST (A.k.a: RESTful API's)
  2. Construir una base de datos utilizando el ORM llamado SQLAlchemy o TypeORM (https://typeorm.io/).
  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 API 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 via API.

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 Curso de Programación para convertirte en Full Stack Developer, o nuestro Data Science Bootcamp.

Meta

Tutoriales y ejercicios de 4Geeks Coding Projects para personas que están aprendiendo a codificar o mejorando sus habilidades de codificación

Video tutorial

Dificultad

unknown

Repositorio

Clic para abrir

Video

No disponible

Demo en vivo

No disponible

Duración promedio

8 hrs

Tecnologías