Este trabajo práctico tiene como objetivo principal conocer las mejores prácticas del candidato, para ello se solicita tomarse el tiempo de leer bien la consigna y entregar el mejor desarrollo posible. Todo componente agregado será considerado como un Plus
.
- Se espera que la persona sea creativa 🎨
- Programe de forma componentizada y ordenada 🏗️
- Respete los request que pedimos 🤓
- Se espera que no sea un trabajo de mas de 8 horas, 12 horas como mucho ⏰
💡 **Obligatorio:** Recorda abrir un repositorio público (puede ser Github, Gitlab, Bitbucket…) **Nice to Have:** Deseable que el proyecto esté deployado en un server (gratuito) **Nice to Have:** Deseable que el proyecto tenga testings
- Crear 1 proyecto llamado “Backend”.
- Este Proyecto debe ser creado con Laravel, el cual brindará una
API REST JSON
. - Leer y analizar la documentación de la API de Starwars
- Realizar llamadas
GET
a los siguientes endpoints:- 👤 People
- 🌎 Planets
- 🚀 Vehicles
- Por cada uno de los endpoints, deben realizarse las siguientes llamadas llamadas:
**GET All**
y**GET by iD**
- Tiene que tener un limit y un offset
- Hacer uso de JWT o Auth0 para el proceso de autenticación.
- Cada request debe tener validación de token
- BBDD: MySQL
- Subir a un repositorio público
- Deployar para ser testeado
- Register:
- '/api/register' - Registro de un nuevo usuario y devuelve un token
curl -X POST \ 'http://localhost/api/register' \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --data-raw '{ "name": "Martin", "email": "martinkluck05@gmail.com", "password": "12345678" }'
- Login:
- '/api/login' - Login de un usuario que devuelve un token
curl -X POST \ 'http://localhost/api/login' \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --data-raw '{ "email": "martinkluck05@gmail.com", "password": "12345678" }'
- Logout:
- '/api/logout' - Elimina todos los tokens generados del usuario
curl -X GET \ 'http://localhost/api/logout' \ --header 'Accept: application/json' \ --header 'Authorization: Bearer ACCESS_TOKEN'
- People:
- '/api/people' - Obtiene la lista de personajes
curl -X GET \ 'http://localhost/api/people?page=2&perPage=5' \ --header 'Accept: application/json' \ --header 'Authorization: Bearer ACCESS_TOKEN'
- '/api/people/{id}' - Obtiene un personaje por ID
curl -X GET \ 'http://localhost/api/people/{id}' \ --header 'Accept: application/json' \ --header 'Authorization: Bearer ACCESS_TOKEN'
- '/api/people' - Obtiene la lista de personajes
- Planets:
-
'/api/planets' - Obtiene la lista de personajes
``` curl -X GET \ 'http://localhost/api/planets?page=2&perPage=5' \ --header 'Accept: application/json' \ --header 'Authorization: Bearer ACCESS_TOKEN' ```
-
'/api/planets/{id}' - Obtiene un personaje por ID
``` curl -X GET \ 'http://localhost/api/planets/{id}' \ --header 'Accept: application/json' \ --header 'Authorization: Bearer ACCESS_TOKEN' ```
-
- Vehicles:
-
'/api/vehicles' - Obtiene la lista de personajes
``` curl -X GET \ 'http://localhost/api/vehicles?page=2&perPage=5' \ --header 'Accept: application/json' \ --header 'Authorization: Bearer ACCESS_TOKEN' ```
-
'/api/vehicles/{id}' - Obtiene un personaje por ID
``` curl -X GET \ 'http://localhost/api/vehicles/{id}' \ --header 'Accept: application/json' \ --header 'Authorization: Bearer ACCESS_TOKEN' ```
-