Practica 1 en equipo | CRUD - Base de datos con XML
Para poder hacer uso de la base de datos es necesario hacer un login con un usuario y contraseña.
La API simula una base de datos, por lo tanto requiere un inicio de sesion previo para poder manipularla (altas, consulta y bajas).
Las acciones basicas del CRUD son: Leer, modificar, eliminar, agregar.
Los parametros que lee son:
- "action" : accion del crud los valores son
GET
(lectura),MODIFY
(modificacion),DELETE
(borrar) yNEW
(agregar). Los valores son leidos desdegetParameter("action")
- "object" : el objeto de modificacion al que apunta, puede ser
QUESTIONNAIRE
(cuestionarios),QUESTION
(Preguntas),OPTION
(opciones de respues), se lee desdegetParameter("object")
- "id": Indica el ID del elemento, dependiendo de "action" sera el id del elemento padre o el id del objeto que se quiere modificar, se lee desde
getParameter("id")
- "SECONDACTION": indica un parametro de apoyo segun "action" lo requiera, , se lee desde
getParameter("secondaction")
El query se accede desde el metodo GET.
Cada respuesta devuelve un JSON con la estructura del objecto solicitado (Para GET
, para -MODIFY
, DELETE
, NEW
- devuelve JSON con el estatus de la accion).
Obtener un elemento especifico indica el siguiente formato:
ACTION = "GET"
OBJECT = "QUESTIONNAIRE" | "QUESTION" | "OPTION"
ID = <Cualquier ID>
Ejemplo, obtiene el cuestionario con id QUESTIONNAIRE1
ACTION = "GET"
OBJECT = "QUESTIONNAIRE"
ID = "QUESTIONNAIRE1"
//URLQUERY: ?action=GET&object=QUESTIONNAIRE&id=QUESTIONNAIRE1
Utilizar SECONDACTION="GETLIST"
para obtener listado completo, ejemplo obteniendo el listado completo de los cuestionarios:
ACTION = "GET"
OBJECT = "QUESTIONNAIRE"
SECONDACTION = "GETLIST"
//URLQUERY: ?action=GET&object=QUESTIONNAIRE&secondaction=GETLIST
Modifica un objeto, ID
especifica el id del cuestionario y OBJECT
el objeto a modificar. SECONDACTION
requiere la estructura de OBJECT
a modificar.
response
devuelve json tal que:
{
status: <modified | error>
}
Para simplificar enviar el cuestionario completo en cuestion en SECONDACTION
Ejemplo, actualiza los cambios realizados en el cuestionario con ID="1"
:
ACTION = "MODIFY"
ID= "1"
SECONDACTION = "{"id": "1", "title": "Parabolas", "questions": []}"
//URLQUERY: ?action=MODIFY&secondaction={"id": "1", "title": "Parabolas", "questions": []}&ID=1
Elimina el objeto con ID
segun el id del objeto padre en SECONDACTION
, ejemplo eliminando pregunta con ID = "QUESTION1"
en el cuestionario con id SECONDACTION = "QUESTIONNAIRE1"
ACTION = "DELETE"
OBJECT = "QUESTION"
ID = "QUESTION1"
SECONDACTION = "QUESTIONNAIRE1"
//URLQUERY: ?action=DELETE&object=QUESTION&secondaction=QUESTIONNAIRE1
response
devuelve json tal que:
{
status: "removed" | "error"
}
Agrega un nuevo elemento ID
indica el objeto padre en donde se inserta el nuevo elemento, SECONDACTION
recibe la estructura del objeto en formato JSON
Ejemplo, inserta pregunta en el cuestionario con id ID = "QUESTIONNAIRE1"
ACTION = "NEW"
OBJECT = "QUESTION"
ID = "QUESTIONNAIRE1"
SECONDACTION = "{"title": "Pregunta aleatoria", "options": []}"
//URLQUERY: ?action=NEW&object=QUESTION&secondaction={"title": "Pregunta aleatoria", "options": []}
response
devuelve JSON tal que:
{
status: "removed" | "error"
}
{
"questionnaires: <arreglo de cuestionarios>"
}
{
"title": <texto>,
"id": <texto>
"questions": <arreglo de preguntas>
}
{
"answer_index": <numero>,
"title": <texto>,
"id": <text>,
"options": <arreglo de opciones de respuestas>
}
{
"text_content": <texto>,
"id": <texto>
}