Protocolo de comunicación - UNIZAR-30248-2015-GPS-Fooding/Server GitHub Wiki

Protocolo de comunicación cliente-servidor

Introducción

Servidor y cliente intercambiarán información a través de XML. Las peticiones del cliente y las respuestas del servidor tendrán un identificador para distinguir las distintas peticiones:

  • Si el usuario quiere la lista de ingredientes disponibles, id=0
  • Si el usuario quiere información de una receta, id=1
  • Si el usuario quiere información de usuarios, id=2
  • Si el usuario quiere información de grupos, id=3
  • Si el usuario quiere la lista de tipos, id=4
  • Si se quiere registrar a un usuario, id=5
  • Si se quiere loguear a un usuario, id=6
  • Si el usuario quiere publicar una nueva receta, id=7
  • Si el usuario quiere valorar una receta, id=8
  • Si el usuario quiere ver la valoración media de una receta, id=9
  • Si el usuario quiere la lista de usuarios, id=10
  • Si el usuario quiere la lista de recetas, id=11
  • Si el usuario quiere su lista de recetas favoritas, id=12
  • Si el usuario quiere marcar como favorita una receta, id=13
  • Si el usuario quiere comprobar si una receta es favorita, id=14

Las peticiones del cliente tendrán el siguiente formato:

<request id=”identificador”> información de la consulta </request>

El servidor responderá de la siguiente forma:

<response id=”identificador”> información de la BD acerca de la consulta </response>

Lista de ingredientes

<request id=”0”> </request>

<response id=”0”> <ingrediente>nombre</ingrediente> <ingrediente>nombre</ingrediente> ... </response>

Información de una receta

<request id=”1”> <id>id</id> <test>yes|no</test> </request>

<response id=”1”> <id>id</id> <nombre>nombre</nombre> <tipo>tipo</tipo> <instrucciones>instrucciones</instrucciones> <nick_autor>nick_autor</nick_autor> <mail_autor>mail_autor</mail_autor> <me_gusta>número</me_gusta> <no_me_gusta>número</no_me_gusta> <ingrediente cantidad=”no” uds=”uds”>nombre</ingrediente>... </response>

Lista de tipos

<request id=”4”> </request>

<response id=”4”> <tipo>nombre</tipo> <tipo>nombre</tipo> ... </response>

Usuarios

Información de un usuario

<request id=”2”> <mail>mail</mail> <test>yes|no</test> </request>

<response id=”2”> <mail>mail</mail> <nick>nick</nick> <score>numero</score> <receta id="numero">nombre</receta> </response>

Crear usuario

<request id=”5”> <mail>mail</mail> <nick>nick</nick> <pw>pw</pw> <test>yes|no</test> </request>

<response id=”5”> <hecho>yes|no</response> </response>

Loguear usuario

<request id=”6”> <mail>mail</mail> <pw>pw</pw> <test>yes|no</test>

<response id=”6”> <hecho>yes|no</hecho> </response>

Publicar nuevas recetas

<request id=”7”> <mail>mail</mail> <nombre>nombre</nombre> <tipo>tipo</tipo> <instrucciones>instrucciones</instrucciones> <ingrediente cantidad=”no” uds=”uds”>nombre</ingrediente> <test>yes|no</test> </request>

<response id=”7”> <hecho>yes|no</hecho> </response>

Valorar recetas

<request id=”8”> <id>i</id> <mail>mail</mail> <voto>+1/-1</voto> <test>yes|no</test> </request>

<response id=”8”> <hecho>yes|no</hecho> </response>

Valoracion media de una receta

<request id=”9”> <id>i</id> <test>yes|no</test> </request>

<response id=”9”> <valoracion>numero real</valoracion> </response>

Lista de recetas

<request id=”11”> <nombre>nombre</nombre> <tipo>tipo</tipo> <ingrediente>ingrediente</ingrediente> ... <test>yes|no</test> </request>

<response id=”11”> <receta> <id>id</id> <nombre>nombre</nombre> <tipo>tipo</tipo> <me_gusta>número</me_gusta> <no_me_gusta>número</no_me_gusta> </receta> </response>

Lista de usuarios

<request id=”10”> <nick>nick</nick> <test>yes|no</test> </request>

<response id=”10”> <usuario> <mail>mail</mail> <nick>nick</nick> <score>numero</score> </usuario> </response>

Favoritos

Lista de recetas favoritas

<request id=”12”> <mail>mail</mail> <test>yes|no</test> </request>

<response id=”12”> <receta> <id>id</id> <nombre>nombre</nombre> <tipo>tipo</tipo> <me_gusta>número</me_gusta> <no_me_gusta>número</no_me_gusta> </receta> </response>

Usuario marca receta favorita

<request id=”13”> <mail>mail</mail> <id>id</id> <test>yes|no</test> </request>

<response id=”13”> <hecho>yes|no</hecho> </response>

Usuario tiene receta favorita

<request id=”14”> <mail>mail</mail> <id>id</id> <test>yes|no</test> </request>

<response id=”14”> <favorita>yes|no</favorita> </response>

⚠️ **GitHub.com Fallback** ⚠️