git clone https://github.com/remifu93/bernini
cd bernini
docker-compose up --build
crear el .env siguiendo el fichero .enx.example de ejemplo
Para ingresar al proyecto ir a la url http://127.0.0.1:8000/
Usuario admin: admin@admin.com Usuario normal: user@user.com
En ambos usuarios la password es 123456
La api key es api_key Se debe enviar el header x-api-key con el valor antes dicho para las endoints que lo requieran.
En este caso, tenemos los recursos users, products y orders, por lo que usaremos las siguientes URL: /users/ , /products/ y /orders/
POST > /api/users/token/ Hacer login, devuelve un access token
JSON
{
"email": "admin@admin.com",
"password": "123456"
}
GET > /api/products?search=&page= Listar productos con parametros opcionales de paginacion y busqueda
search - Parametro de busqueda por nombre
page - Numero de pagina del listado de resultados
page_size - Definir resultados por pagina.
GET > /api/orders Trae las ordenes del usuario logueado, si es admin trae todas las ordenes
- Necesita header Authorization con value Bearer + access token
- Necesita header x-api-key con value api_key
GET > /api/orders/<order_id> Detalle de una orden, un admin puede ver todas, un usuario normal solo sus ordenes
- Necesita header Authorization con value Bearer + access token
- Necesita header x-api-key con value api_key
POST > /api/orders Crea una orden nueva a nombre del usuario logueado
- Necesita header Authorization con value Bearer + access token
- Necesita header x-api-key con value api_key
JSON
{
"shipment_method": "E",
"products": [{"id": <id producto>, "quantity": <cantidad>}]
}
shipment_methods > E Express, S Standar y P Pickup sucursal (gratis)
- Se utilizo la generacion de documentacion con swagger la cual se accede desde el indice de la aplicacion (es necesario haber iniciado sesion en el panel de admin de django previamente para poder verla).
Para testear los endpoints en este caso utilice https://insomnia.rest/
El proyecto incluye un fichero llamado insomnia_requests por si quereis testear la api de una forma mas sencilla
Para correr los tests de django dentro de docker yo suelo utilizar:
docker run -it <docker_image_web> bash
python3 manage.py test