Skip to content

DevsInPyjamas/DjanGI-API

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DjanGI

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.

DjanGI API

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.

Testing the API

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.

Decoradores

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.

About

API for the DjanGI project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •