0% encontró este documento útil (0 votos)
2 vistas17 páginas

API RESTful Con Python

El proyecto consiste en desarrollar una API RESTful en Python utilizando Django Rest Framework y MongoDB, enfocada en la búsqueda y descubrimiento de eventos de entretenimiento y cultura. Se realizará en equipo a lo largo de tres asignaturas, culminando en una solución integral que mejore la experiencia del usuario y ofrezca herramientas para profesionales y emprendedores. La API combinará información sobre títulos, disponibilidad en plataformas y un sistema de reseñas, respondiendo a una necesidad del mercado actual en el ámbito del streaming.

Cargado por

anapauzapatao
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
2 vistas17 páginas

API RESTful Con Python

El proyecto consiste en desarrollar una API RESTful en Python utilizando Django Rest Framework y MongoDB, enfocada en la búsqueda y descubrimiento de eventos de entretenimiento y cultura. Se realizará en equipo a lo largo de tres asignaturas, culminando en una solución integral que mejore la experiencia del usuario y ofrezca herramientas para profesionales y emprendedores. La API combinará información sobre títulos, disponibilidad en plataformas y un sistema de reseñas, respondiendo a una necesidad del mercado actual en el ámbito del streaming.

Cargado por

anapauzapatao
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

API RESTful con Python

INTEGRANTES:

Omar Hernandez
Roberto Huerta
Rodrigo Saldaña
Raul Saldaña
Alejo Jasso
Ana Pau Zapata

Programación y arquitectura de aplicaciones

Lineamientos del proyecto

Alcance

Este proyecto marca el inicio del desarrollo de una aplicación web innovadora,
diseñada para satisfacer necesidades específicas de los usuarios en diversos
ámbitos de entretenimiento, cultura y negocios. La plataforma facilitará la
búsqueda y descubrimiento de eventos como conciertos, exhibiciones
culturales, proyecciones cinematográficas, competencias deportivas,
conferencias empresariales, así como el acceso a catálogos digitales
especializados en música, negocios y otros sectores de interés.

El desarrollo de esta aplicación se llevará a cabo a lo largo de tres asignaturas


consecutivas en la línea de tecnología digital.

Cada una de estas materias contribuirá de manera significativa a la


evolución y perfeccionamiento del proyecto, culminando en una solución
integral y funcional que no sólo enriquecerá la experiencia de los
usuarios en el ámbito cultural y de entretenimiento, sino que también
proporcionará herramientas valiosas para profesionales y
emprendedores en el mundo de los negocios.

Página 2 de 7 © Escuela Bancaria y Comercial, S.C.

Programación y arquitectura de aplicaciones

Finalidad

Desarrollar una API RESTful en Python, utilizando Django Rest Framework y


MongoDB.

Instrucciones:

1. El proyecto lo realizarás en equipo de acuerdo con las instrucciones de


tu docente/asesor.
2. La ruta sugerida para elaborar el proyecto es la siguiente:
1. Fase 1: Unidad 2.
2. Fase 2: Unidad 4.
3. Fase 3: Unidad 5.
4. Entrega del proyecto: Unidad 5.
3. Características de la entrega:

a. Informe ejecutivo, que contemple las correcciones de cada una de las fases
sugeridas por su docente, con base en los siguientes lineamientos:

 Formato de procesador de texto Word o PDF.


 Portada:
 − Escudo EBC.
 − Nombre del docente, de la asignatura y de los integrantes del
equipo.
 Tipografía Arial 12; interlineado 1.5.
 Incluir fuentes de consulta en formato APA.
 Anexar procedimientos, gráficas u otros apoyos que sustenten las fases
del

proyecto.

Fase 1 - Investigación preliminar

1. Realicen una investigación, en fuentes confiables, sobre las API RESTful,


sus características, ventajas y uso real en el desarrollo web.
2. Investiguen y recopilen información de por lo menos 5 API’s de uso
público.

a. Respondan:

•••

¿Cuál es el propósito de cada una? ¿Qué información permiten consultar? ¿Qué


tipo de aplicaciones las utilizan?

1. ¿Qué es una API RESTful?


Una API RESTful (Representational State Transfer) es un estilo de arquitectura para el
desarrollo de servicios web que permite la comunicación entre aplicaciones mediante el
protocolo HTTP. REST se basa en el uso de recursos identificados por URLs y en métodos
estándar como GET, POST, PUT y DELETE.
En una API RESTful, cada recurso (por ejemplo, una película o una serie) tiene una
dirección específica y puede ser consultado o modificado mediante peticiones HTTP.
Generalmente, las respuestas se devuelven en formato JSON, lo que facilita su lectura e
integración en aplicaciones web y móviles.
Características principales
 ● Uso de URLs claras para acceder a recursos (ejemplo: /api/peliculas).
 ● Utilización de métodos HTTP estándar:
GET: Obtener información.
POST: Crear un nuevo recurso.
PUT: Actualizar información existente. DELETE: Eliminar un recurso.
 ● Arquitectura sin estado : cada solicitud es independiente.
 ● Respuestas comúnmente en formato JSON.
 ● Separación entre cliente (frontend) y servidor (backend).
Ejemplo práctico
GET /api/peliculas/15
Devuelve la información de la película con ID 15.
POST /api/resenas
Permite agregar una nueva reseña.
PUT /api/peliculas/15
Actualiza los datos de la película.
Ventajas
 ● Facilidad de integración entre sistemas.
 ● Escalabilidad para manejar múltiples solicitudes.
 ● Estándar ampliamente adoptado en el desarrollo web.
 ● Compatible con aplicaciones móviles, web y sistemas backend.
 ● Permite la reutilización de servicios.
Desafíos
 ● Implementación de mecanismos de seguridad.
 ● Control de versiones de la API.
 ● Manejo de grandes volúmenes de datos.
 ● Limitación de solicitudes.
 ● Manejo adecuado de errores y códigos de estado HTTP.
Casos de uso en películas y series
 ● Sitios web con catálogos de películas.
 ● Aplicaciones de streaming.
 ● Sistemas de recomendación personalizada.
 ● Bots que responden información sobre películas.
 ● Integradores de reseñas y calificaciones.
2. Investigación de 5 API públicas de películas y series
1. The Movie Database
Propósito:
Proveer información completa sobre películas, series, actores y producciones audiovisuales.
Información que permite consultar:
 ● Listas de películas por popularidad.
 ● Detalles como sinopsis, imágenes y trailers.
 ● Información de actores y equipo de producción.
 ● Géneros y calificaciones.
Aplicaciones que la utilizan:
 ● Aplicaciones móviles de catálogo.
 ● Plataformas de recomendación.
 ● Sitios web informativos.
Sitio oficial: [Link]

2. Open Movie Database (OMDb)


Propósito:
Proporcionar información gratuita (mediante clave API) sobre películas y series.
Información que permite consultar:
 ● Año de estreno.
 ● Género.
 ● Director y reparto.
 ● Calificaciones de IMDb, Rotten Tomatoes y Metacritic.
 ● Posters.
Aplicaciones que la utilizan:
 ● Aplicaciones de reseñas.
 ● Buscadores por título.
 ● Bots informativos.
Sitio oficial: [Link] 3. Utelly API
Propósito:
Indicar en qué plataformas de streaming se encuentra disponible una película o serie.
Información que permite consultar:
 ● Servicios de streaming disponibles.
 ● País de disponibilidad.
 ● Enlaces directos a plataformas.
Aplicaciones que la utilizan:
 ● Comparadores de streaming.
 ● Apps de recomendación regional.
 ● Guías de entretenimiento.
Documentación: [Link] 4. TVmaze API
Propósito:
Ofrecer información detallada sobre series de televisión.
Información que permite consultar: ● Episodios.

 ● Temporadas.
 ● Fechas de estreno.
 ● Información del elenco.
Aplicaciones que la utilizan:
 ● Apps de seguimiento de series.
 ● Calendarios de estrenos.
 ● Sistemas de notificaciones de nuevos episodios.
Sitio oficial: [Link] 5. JustWatch API
Propósito:
Mostrar dónde ver películas y series según país y plataforma.
Información que permite consultar:
 ● Plataformas disponibles.
 ● Tipo de acceso (suscripción, renta o compra).
 ● Disponibilidad por región.
Aplicaciones que la utilizan:
 ● Comparadores de plataformas.
 ● Aplicaciones de guía de streaming.
 ● Sistemas de recomendación regional.
Sitio oficial: [Link]
3. API a desarrollar
API combinada (Catálogo + Disponibilidad + Reseñas) Características
 ● Consulta de títulos (películas y series).
 ● Filtros por género, popularidad y año.
 ● Información sobre disponibilidad en plataformas.
 ● Sistema CRUD de reseñas de usuarios.
 ● Posibilidad de integración con APIs externas.
Propósito

Crear una API integral que permita juntar información de entretenimiento en un solo
servicio, facilitando la integración en aplicaciones móviles y web.
4. Justificación de la elección ¿Por qué se eligió esta API?
Se eligió la API combinada porque tiene múltiples funcionalidades en un solo sistema.
Permite consultar datos generales, verificar disponibilidad en plataformas y agregar
interacción social mediante reseñas.
Esto la convierte en una solución más completa, innovadora y aplicable a escenarios reales.
Necesidad del mercado
Actualmente, el mercado del streaming ha crecido considerablemente. Los usuarios utilizan
múltiples plataformas (Netflix, Prime Video, Disney+, etc.), lo que dificulta saber dónde
está disponible un contenido específico.
Existe la necesidad de una herramienta que:
 ● Centralice información.
 ● Compare disponibilidad entre plataformas.
 ● Permita interacción social mediante reseñas.
 ● Facilite la toma de decisiones sobre qué ver.
Población meta
 ● Desarrolladores de aplicaciones de entretenimiento.
 ● Usuarios finales que buscan información confiable.
 ● Emprendedores digitales que desean integrar servicios de streaming.
Aplicaciones que podrían utilizarla
 ● Aplicaciones móviles de catálogo.
 ● Webs de recomendaciones personalizadas.
 ● Bots de chat informativos.
 ● Portales de reseñas.
 ● Integradores de servicios de streaming.
5. Conclusión
Las API RESTful representan una solución eficiente y escalable para el desarrollo de
aplicaciones modernas. En el ámbito del entretenimiento, permiten integrar información,
disponibilidad y reseñas en sistemas completos.
El desarrollo de una API combinada responde a una necesidad real del mercado actual,
facilitando la toma de decisiones y mejorando la experiencia del usuario en el consumo de
contenido audiovisual.
6. Referencias (Formato APA)
The Movie Database. (2024). TMDb API documentation.
[Link]
Open Movie Database. (2024). OMDb API documentation.
[Link] TVmaze. (2024).
TVmaze API [Link]://[Link]/api
Utelly. (2024). Utelly API documentation.
[Link] JustWatch. (2024).
JustWatch official website. [Link]

Página 3 de 7

© Escuela Bancaria y Comercial, S.C.

Programación y arquitectura de aplicaciones

3. Determinen qué API desarrollarás, a partir de la investigación previa y


considerando lo siguiente:
1. Describan qué tipo API's podrías crear.
2. Expliquen las características y propósito de las API ́s.
3. Comparen cada una de ellas.
4. Elijan aquella con la que realizarás tu proyecto final.
4. Explica:
1. ¿Por qué elegiste desarrollar esa API?
2. ¿Cuál es tu población meta?
3. ¿Qué necesidad satisface?
4. ¿Qué tipo de aplicaciones podrían utilizarla?

Avance

Documento de texto que contenga:

 Investigación preliminar.
 Elección y justificación de la aplicación a desarrollar.

Fase 2 - Diseño de la base de datos

1. Describan dentro de un archivo de texto las colecciones que tendrá tu


base de datos, con respecto a la investigación preliminar y a la elección
de la API a desarrollar.
2. Describan la estructura JSON de los documentos, al menos 15 para cada
colección dentro de un archivo de texto, para ello:

Codigo:
[
{ "id": 1, "name": "Inception", "description": "Un ladrón roba
secretos a

través de los sueños.", "author": "Christopher Nolan", "genre":


"Sci-Fi" },

{ "id": 2, "name": "Titanic", "description": "Historia de amor en


un barco que se hunde.", "author": "James Cameron", "genre":
"Romance" },

{ "id": 3, "name": "Gladiator", "description": "Un general


romano busca venganza.", "author": "Ridley Scott", "genre":
"Acción" },

{ "id": 4, "name": "The Matrix", "description": "Un hacker


descubre una realidad simulada.", "author": "Lana
Wachowski", "genre": "Sci-Fi" },

{ "id": 5, "name": "Interstellar", "description": "Viaje espacial


para salvar a la humanidad.", "author": "Christopher Nolan",
"genre": "Sci-Fi" },

{ "id": 6, "name": "Avatar", "description": "Un soldado explora


un mundo alienígena.", "author": "James Cameron", "genre":
"Sci-Fi" },

{ "id": 7, "name": "Joker", "description": "Origen de un villano


icónico.", "author": "Todd Phillips", "genre": "Drama" },

{ "id": 8, "name": "Avengers: Endgame", "description":


"Héroes intentan salvar el universo.", "author": "Anthony
Russo", "genre": "Acción" },

{ "id": 9, "name": "Coco", "description": "Un niño viaja al


mundo de los muertos.", "author": "Lee Unkrich", "genre":
"Animación" },

{ "id": 10, "name": "Frozen", "description": "Dos hermanas


enfrentan poderes mágicos.", "author": "Chris Buck", "genre":
"Animación" },
{ "id": 11, "name": "The Lion King", "description": "Un león
reclama su lugar como rey.", "author": "Roger Allers", "genre":
"Animación" },

{ "id": 12, "name": "Jurassic Park", "description": "Un parque


lleno de dinosaurios sale mal.", "author": "Steven Spielberg",
"genre": "Aventura" },

{ "id": 13, "name": "Spider-Man", "description": "Un joven


obtiene poderes arácnidos.", "author": "Sam Raimi", "genre":
"Acción" },

{ "id": 14, "name": "Harry Potter", "description": "Un mago


estudia en una escuela mágica.", "author": "Chris Columbus",
"genre": "Fantasía" },

{ "id": 15, "name": "Fast & Furious", "description": "Carreras


ilegales y acción extrema.", "author": "Rob Cohen", "genre":
"Acción" },

{ "id": 16, "name": "Breaking Bad", "description": "Un profesor


se vuelve narcotraficante.", "author": "Vince Gilligan",
"genre": "Drama" },

{ "id": 17, "name": "Stranger Things", "description": "Niños


enfrentan eventos sobrenaturales.", "author": "Duffer
Brothers", "genre": "Sci-Fi" },

{ "id": 18, "name": "Game of Thrones", "description":


"Familias luchan por el trono.", "author": "David Benioff",
"genre": "Fantasía" },

{ "id": 19, "name": "The Office", "description": "Vida diaria en


una oficina.", "author": "Greg Daniels", "genre": "Comedia" },

{ "id": 20, "name": "Friends", "description": "Grupo de amigos


en Nueva York.", "author": "David Crane", "genre":
"Comedia" },
{ "id": 21, "name": "The Witcher", "description": "Un cazador
de monstruos recorre el mundo.", "author": "Lauren Schmidt",
"genre": "Fantasía" },

{ "id": 22, "name": "Money Heist", "description": "El mayor


robo de la historia.", "author": "Álex Pina", "genre":
"Crimen" },

{ "id": 23, "name": "Dark", "description": "Viajes en el tiempo


afectan generaciones.", "author": "Baran bo Odar", "genre":
"Sci-Fi" },

{ "id": 24, "name": "Narcos", "description": "Historia del


narcotráfico en Colombia.", "author": "Carlo Bernard", "genre":
"Crimen" },

{ "id": 25, "name": "The Mandalorian", "description": "Un


cazarrecompensas en el espacio.", "author": "Jon Favreau",
"genre": "Sci-Fi" },

{ "id": 26, "name": "House of the Dragon", "description":


"Historia de la casa Targaryen.", "author": "Ryan Condal",
"genre": "Fantasía" },

{ "id": 27, "name": "Peaky Blinders", "description": "Una


familia criminal en Inglaterra.", "author": "Steven Knight",
"genre": "Drama" },

{ "id": 28, "name": "Black Mirror", "description": "Historias


sobre tecnología y sociedad.", "author": "Charlie Brooker",
"genre": "Sci-Fi" },

{ "id": 29, "name": "Loki", "description": "El dios del engaño


altera el tiempo.", "author": "Michael Waldron", "genre": "Sci-
Fi" },

{ "id": 30, "name": "Euphoria", "description": "Vida de


adolescentes y sus problemas.", "author": "Sam Levinson",
"genre": "Drama" }
]
a. Recuerden seguir la siguiente estructura para cada uno de los documentos:
Documento 1

{"campo":"valor", "campo":"valor", "campo":"valor"} Documento 2


{"campo":"valor", "campo":"valor", "campo":"valor"}

Página 4 de 7 © Escuela Bancaria y Comercial, S.C.

Programación y arquitectura de aplicaciones

3. Analicen la estructura de los documentos de tus colecciones y responde lo


siguiente: a. ¿Los datos son suficientes para que otras aplicaciones los puedan
utilizar?

Si tu respuesta es no, explica ¿por qué?

No, ya que la información es limitada y no incluye atributos importantes como año,


calificación, duración o número de temporadas. Además, no existe una diferenciación clara
entre películas y series, lo que dificulta su uso en otras aplicaciones. Para que sea funcional
en un entorno real, la base de datos debería ser más completa y estructurada.

Nota: Si consideran que hace falta incluir más campos en tus documentos,
realicen los ajustes necesarios.

Avance

Documento de texto que contenga:

 Descripción de las colecciones y análisis de la información.


 Estructura JSON de los registros de cada colección.
 Análisis de la estructura de los documentos de tus colecciones.

Fase 3 - Desarrollo de la API RESTful

1. Desarrollen una base de datos en MongoDB con Compass.


2. Desarrollen un proyecto nuevo en Django y configura la conexión con tu
base de datos.

3. Utilicen Django Rest Framework para construir tu API.


4. Desarrollen los modelos, vistas y rutas, para ello,

a. Utiliza como referencia para los modelos, la descripción de la estructura


JSON de los documentos que elaboraste en la fase 2.

b. Ejecuta las migraciones de tus modelos desde Django Rest Framework para
generar las colecciones de manera automática en tu base de datos.

from [Link] import models

class Movie([Link]):

name = [Link](max_length=150)
description = [Link](max_length=150, null=True, blank=True) #
Allow

null values and blank values

author = [Link](max_length=200, null=True, blank=True) # Allow


null and blank

genre = [Link](max_length=50, null=True, blank=True) # Allow


null and blank
def __str__(self): return [Link]

class Serie([Link]):
name = [Link](max_length=150)

description = [Link](max_length=550) seasons =


[Link](default=0, blank=True)

def __str__(self): return [Link]

b. Ejecuta las migraciones de tus modelos desde Django Rest Framework para
generar las colecciones de manera automática en tu base de datos.

# from [Link] import User from rest_framework import


serializers from .models import Movie, Serie # <-- Esta línea es importante
class MovieSerializer([Link]): class Meta:

model = Movie fields = ('id','name','description','author','genre')

class SerieSerializer([Link]): class Meta:

model = Serie fields = ('id','name', 'description', 'seasons')

5. Utilicen Postman o la interfaz de Django Rest Framework para probar que tu


API RESTful funcione correctamente. Realiza ajustes de ser necesario. from
[Link] import re_path from [Link] import include from TVApp
import views from rest_framework import routers

# ----- MovieView ----- routerMovie = [Link]()


[Link]('', [Link]) # ----- SerieView ----- routerSerie =
[Link]() [Link]('', [Link])

urlpatterns=[ re_path(r'^movies/', include([Link])),

re_path(r'^movies/genre$', [Link].as_view({'get': 'getByGenre'})), #


Ruta para función personalizada re_path(r'^series/', include([Link]))

5. Utilicen Postman o la interfaz de Django Rest Framework para probar


que tu API
6. RESTful funcione correctamente. Realiza ajustes de ser necesario.

7. Utilicen Postman o la interfaz de Django Rest Framework para insertar


los registros (documentos) que elaboraste en la fase anterior.

Página 5 de 7 © Escuela Bancaria y Comercial, S.C.


Programación y arquitectura de aplicaciones

7. En un documento de texto, describan cada una de las rutas que conforman a


tu API, usa como guía la siguiente tabla.

admin/ / Muestra el panel administrador de Django Rest Framework.

Nombre de la API RESTful


Rut Métod
Descripción de la ruta
a o

Avance

Documento de texto que contenga:

 Descripción de las rutas de la API RESTful.


 Enlace del archivo de la base de datos en MongoDB.
 Código fuente de la aplicación.

Entrega y presentación del proyecto

1. Integren todas las fases evidenciando los cambios realizados. Deberá


tener los archivos comprimidos del código fuente y la base de datos en
MongoDB.
2. Presenten al grupo su proyecto. Deberán considerar el siguiente orden:

a. Describan qué tipo API's crearon a partir de la necesidad detectada,


sus características y propósito.

b. Expliquen:

 Los retos que presentaron al desarrollar el código.


 Cuáles son las áreas de oportunidad del desarrollo.

NOTA: De manera individual, guarden su proyecto desarrollado


porque lo necesitarán para continuar con la siguiente etapa a
diseñar en la asignatura Programación y diseño de aplicaciones.

Página 6 de 7 © Escuela Bancaria y Comercial, S.C.

Programación y arquitectura de aplicaciones

Entregable
 Documento de evidencias.
 Archivo comprimido con la aplicación.

También podría gustarte