Se llama DjanGI porque es un trabajo de Gestión de la Información (GI) y lo vamos a desarrollar en Django por eso DjanGI es ingenioso no creen.
Este respositorio contiene la API que se usará para realizar el trabajo de la asignatura de Gestión de la Información (UMA curso 18-19) en el que se nos propone realizar, en una tecnología alternativa, una conexión a una base de datos con una interfaz.
El objetivo de nuestra solución es crear una API en django para el backend y utilizar REACT para la parte de interfaz.
Pa hacerle tests a estas cosas hemos utilizado la herramienta curl
para obtener
los JSONS generados por la API: varios ejemplos
curl -H 'X-session-user: admin' -X POST -d '{"type_id": "B", "name": "PIEZA DE PRUEBA", "manufacturer": "RENLOL"}' localhost:8000/new_piece
Que inserta con un POST una pieza de prueba dentro de la BBDD
curl -H 'X-session-user: admin' localhost:8000/all_types
que devuelve un JSON de todos los tipos de piezas
curl -H 'X-session-user: admin' -X DELETE 'localhost:8000/delete_piece?id=35'
Borra una pieza del sistema cuya id coincide con el parámetro ?id=
curl -H 'X-session-user: admin' -X POST -d '{"name": "BOMBILLAS XENON", "manufacturer": "", "id": "25"}' 'localhost:8000/modify_piece'
Modifica un elemento de la base de datos y devuelve el JSON con el objeto modificado en caso de acierto
En todas se usa el header X-session-user para controlar que algunos de los usuarios de la DB no puedan hacer acciones de super user.
La API además contiene 4 decoradores.
@csrf_exempt
@with_session
@cross_origin
@returns_json
El decorador @csrf_exempt
desactiva el csrf (no sé qué coño es lmao pero así funciona la API).
@with_session
obtiene de la base de datos un usuario para que en todas las views se pueda
controlar el tema de permisos a la hora de recibir peticiones.
@cross_origin
permite que la API sea utilizada fuera de django.
@returns_json
creo que viene explícito, pero lo explico igualmente. Convierte
la respuesta de una view a un json.