Ok, aquí está el hecho. StackOverflow está implementado al estilo REST. Cuando visitas una pregunta/$ id/URL específica, puedes ver la pregunta. El contenido se devuelve en HTML porque es lo que entiende el navegador.REST y múltiples formatos de datos
Tengo que desarrollar mi propio servicio REST. El hecho es que tengo que devolver múltiples formatos para la misma información. Por ejemplo, el valor predeterminado podría ser HTML, pero podría devolver también un XML o un JSON.
Pregunta es: ¿cuál es el estilo recomendado para lograrlo? Tres opciones (más de sus sugerencias votos)
- opción en la URL (por ejemplo http://example.com/questions/12345/?format=json)
- interfaz diferente (por ejemplo: para los datos JSON tiene http://example.com/questions/1234/json/ o http://example.com/json/questions/12345/, para los datos XML que tiene http://example.com/questions/1234/xml/ etc ... usted consigue el punto) cabecea
- HTTP Accept: application/json
lo mismo es para las operaciones put (POST). Si deseo enviar datos en diferentes formatos, debo informar al receptor el formato que estoy proporcionando, por lo que se cumple la misma situación (y pregunta).
Gracias!
Editar: propuesta adicional es la siguiente
4) especificar una URL apropiada para cada formato, por ejemplo, http://example.com/questions/12345.json. Esto se ve bien, pero ¿no significaría esto que, por coherencia, también deberíamos tener http://example.com/questions/12345.html? suena tan 1995 ... :)
PD: Odio el descuento poniendo una orden arbitraria a la lista. Si quiero comenzar con 4, debería ser capaz de hacerlo.
Pregunta similar: http://stackoverflow.com/questions/381568/rest-content-type-should-it-be-based-on-extension-or-accept-header –
Sí, casi un duplicado, pero como está parado, es menos directo que el mío. Con suerte, esta pregunta será más beneficiosa para los googlers. –
Los esquemas de nomenclatura de URI y URI anidados no tienen absolutamente nada que ver con REST. Si puede confiar en la modificación de partes del URI para acceder a los recursos de manera predecible, es probable que sea simplemente RPC, no REST. – aehlke