Entrega Final de la asignatura Verificación y Validación del Software.
API pública desarrollada en PHP con el micro-framework Lumen (Laravel). Permite realizar consultas a la API de Twitch para obtener información sobre streamers, usuarios y transmisiones en vivo.
Autores:
- Asier Muñoz
- Iñigo Aznárez
- Miguel Vallés
- Alejandro Molina
Para ejecutar el proyecto, simplemente utiliza la URL base adecuada según el entorno.
En cada endpoint, sustituye {base_url} por la URL del entorno deseado.
{base_url} = https://heropass-deploy-fe0660f60d3c.herokuapp.comUtilizamos Docker para levantar el servidor PHP y la base de datos MySQL ya configurada.
Pasos para levantar el entorno:
# Instalar dependencias PHP
composer install
# Construir e iniciar el entorno completo
docker-compose up --build
# Copiar el archivo environment
cp .env.example .envDe esta manera se iniciará el servidor en local, creará automáticamente la base de datos lumen con los datos necesarios y generará el archivo .env si no existe.
{base_url} = http://localhost:8080Este endpoint permite registrar un nuevo usuario y obtener una API Key única.
POST {base_url}/registerEjemplo de Request:
{
"email": "usuario@example.com"
}Ejemplo de Respuesta:
{
"api_key": "abcd1234efgh5678"
}Este endpoint permite obtener un token de sesión válido por 3 días utilizando una API Key.
POST {base_url}/tokenEjemplo de Request:
{
"email": "usuario@example.com",
"api_key": "abcd1234efgh5678"
}Ejemplo de Respuesta:
{
"token": "generated_token"
}Este endpoint requiere autenticación mediante un token válido. El token debe ser enviado en el encabezado Authorization: Bearer {generated_token} en cada petición.
Este endpoint proporcionará información sobre los 40 videos más visualizados de cada uno de los tres juegos más populares en Twitch.
Ejemplo de petición autenticada:
GET /analytics/topsofthetops
Host: {base_url}
Authorization: Bearer generated_tokenEste endpoint permite el parámetro since con el cual se fuerza a la actualización de la base de datos. Se indica en segundos Ejemplo de petición autenticada con el parámetro sice:
GET /analytics/topsofthetops?since=300
Host: {base_url}
Authorization: Bearer generated_tokenEste endpoint permite consultar la información de un streamer de Twitch mediante su ID.
Ejemplo con el id de usuario de Ibai: 83232866
GET /analytics/user?id=83232866
Host: {base_url}
Authorization: Bearer generated_tokenEste endpoint obtiene una lista de los 10 streams con más espectadores que están actualmente en vivo en Twitch.
GET /analytics/streams
Host: {base_url}
Authorization: Bearer generated_tokenEste caso de uso realiza un filtrado y enriquecimiento del listado de Streams en Vivo.
- Obtener la lista de streams en vivo de Twitch (los 10 primeros).
- Ordenar los streams por número de espectadores (ascendente).
- Seleccionar los primeros N (
limit: de 1 hasta 10). - Enriquecer cada stream con información adicional del usuario (
display_nameoprofile_image_url). - Devolver al cliente un listado combinado.
GET /analytics/streams/enriched?limit=3
Host: {base_url}
Authorization: Bearer generated_token