0 votos

Buenos días a todos!

Esquema inicial modelo cliente - servidor

    + cliente = mi app Android

    + servidor = servicio web RESTful

A la hora de gestionar la dupla usuario - contraseña y, teniendo en cuenta la orientación al consumo de recursos por medio de URIs de los RESTful WS me surgen dos ideas

1) Mandar la dupla en un JSON por la red

    Suponiendo que "dato" es una variable del tipo JSONObject

 dato.put("username", "pepito");
 dato.put("password", 1111);

 2) O hacer un consumo de recursos del tipo /db/user/{pepito}/pass/{1111}

 

Muchas gracias. Cualquier sugerencia se agradece =)

 

por en Aplicaciones Móviles

2 Respuestas

+3 votos
Mejor respuesta

Muy buena la respuesta de Pablo Morales.

Añado que agregar datos la url del tipo: miUrl/dato1/dato2/dato3, te lo desaconsejo completamente. Motivos:

  • Primero, añadir datos a la url solo ha de utilizarse para la navegación por el sitio web (número de página, nombre de página, y poco más que ni se me ocurre; puede que alguna búsqueda, pero tampoco lo aconsejo, mejor GET)
  • Segundo, ¿qué ocurre si llega un vacío, como: miUrl/dato1//dato3? lo más seguro es que tengas problemas tanto en cliente como en servidor, por lo que siempre tiene que haber datos (podríamos pensar en añadir caracteres raros que indiquen el vacío, pero ¿qué pasa si es el dato de un input y el usuario mete justo ese carácter? ya el servidor lo interpreta como vacío)
  • Tercero, las url están limitadas en tamaño por lo que no podemos enviar cualquier tamaño de datos (lo mismo ocurre si utilizamos GET, mejor un JSON en POST)
  • Luego tienes que estar utilizando el url Encode y Decode

En resumen, que JSON por POST mola más para mandar datos de formularios (hasta puedes subir archivos).

por
seleccionada por
En tu segundo motivo, el cual es un caso que se da, había usado @QueryParam y @DefaultValue para el caso en el que la uri viniera incompleta
+1 voto
json esta estructurado, no intentes rehacerlo ya que te da todas las alternativas para manejar datos...

pero si fuese el caso de pass y user lo mas corto seria separarlo con algun caracter  ej "user@pass"  entonces @ los separa, pero seguro mas adelante necesitaras manejar mas datos a la hora de hacer login por lo cual es mejor incorporar JSON de inmediato a tener que rearmar tu codigo mas adelante
por
Muchas gracias. Tenias razón  =)