2010-10-24 28 views
6

1) ¿Es importante establecer el tipo de mime correcto para una respuesta del servicio web?REST - respuesta del servicio web - tipo mime?

2) ¿cuál es el tipo de mime correcto para a,
a) XML response?

b) ¿Respuesta JSON?

application/xml 
text/xml 
application/json 
application/x-javascript 
text/javascript 
text/x-javascript 
text/x-json 

Respuesta

7

1) ¿Es importante establecer el tipo de mime correcto para una respuesta de servicio web?

Absolutamente sí. Si está haciendo una verdadera API REST, la documentación de los diferentes tipos de medios que devuelve es una parte vital de su especificación API.

2) ¿cuál es el tipo MIME correcto para a, a) respuesta XML? b) ¿Respuesta JSON?

Para un verdadero servicio REST, depende de los detalles de su API y de lo que haya definido como sus tipos de contenido.

Como ejemplo (tomado de this excellent article que vale la pena leer en su totalidad), un banco puede querer definir un tipo de contenido para cuentas bancarias de application/vnd.bank.org.account+xml. Observe que el tipo MIME "finaliza con +xml, y según RFC 3023, los procesadores XML (incluida XMLHttpRequest) pueden manejar tales representaciones como si fuera XML". El mismo banco también podría utilizar XML para representar una transferencia bancaria, esta vez utilizando un tipo de contenido de application/vnd.bank.org.transer+xml

4

Si no establece un tipo MIME, el receptor no interpretará correctamente el recurso.

Utilice text/xml y application/json respectivamente.

+7

Tenga en cuenta que 'text/xml' y' application/xml' tienen usos ligeramente diferentes. 'text/xml' indica un formato XML que es principalmente legible por humanos/comprensible. Cualquiera de las dos está bien, solo depende del uso previsto de la salida XML. – BoltClock

+0

+1 para BoltClock. Quería escribir lo mismo, pero vi su comentario. Mire rfc3023 (vea http://www.ietf.org/rfc/rfc3023.txt) y busque "legible por usuarios casuales". El enlace http://xml.silmaril.ie/developers/serversoftware/ tiene la información principal de rfc3023 en forma abreviada. – Oleg

+1

El uso de tipos de contenido apropiados es un inquilino central de REST, por lo que los tipos genéricos xml y json son inapropiados. Si OP hubiera preguntado sobre los servicios de estilo RPC, su respuesta estaría bien. Pero sentí que las otras dos respuestas eran más correctas, así que, para ponerlas en pie de igualdad, voté por su voto y voté por encima de los demás. –

1

El tipo MIME es importante para la correcta interpretación por parte del receptor.

a) application/xml o text/xml

b) application/json

MIME Media Types

+0

¡Pienso que lo mejor es seguir con el texto/simple para ambos! – 001

+0

Si la aplicación del receptor no utiliza el tipo de mime de respuesta para nada, puede usar cualquier tipo de mime. Para conocer las mejores prácticas, debe establecer el tipo de mimo correcto. – ReinaldoNS

+0

Si lo hace con texto/sin formato, un navegador, por ejemplo, no sabría cómo mostrarlo correctamente. – krico

3

1) ¿Es importante establecer el tipo MIME correcto para una respuesta del servicio web?

Sí. Sin embargo, esto depende realmente de cómo se espera o configura el destinatario para procesar el contenido. Un cliente que se crea utilizando información fuera de banda sobre el contenido puede elegir ignorar el tipo de contenido o un cliente puede usar los metadatos de tipo de contenido para enrutar la representación a un módulo de procesamiento apropiado en función del tipo de contenido. Content-Type permite que un cliente tenga sentido del contenido sin tener que echar un vistazo al contenido real. Además, dado que ha marcado su pregunta como relacionada con REST, es importante comprender la restricción autodescriptiva de REST y qué papel desempeñan los tipos de medios para lograr esta restricción. Si está interesado en aprender más sobre autodescriptivo, lea section 5.2.1 of Roy's dissertation.

2) ¿cuál es el tipo MIME correcto para a, a) respuesta XML?

b) ¿Respuesta JSON?

application/xml texto/xml application/json application/x-javascript text/javascript texto/x-javascript texto/x-jsontext/x-json

Todo el contenido de arriba los tipos son genéricos y no le dan más información al cliente, aparte de decir si el contenido es JSON o XML. Lo que necesita es un tipo de contenido específico para su aplicación que no solo le informe a su cliente sobre el formato sino que también describa la semántica y cómo procesar el contenido. En cuanto a la diferencia entre la aplicación/xxx y el texto/xxx, RFC 3023 indica lo siguiente:

Si un documento XML que es, el, documento XML de origen sin procesar es leídos por los usuarios ocasionales, text/xml es preferible a la aplicación/xml.MIME agentes de usuario (y agentes de usuario web) que no tienen soporte explícito para texto/xml lo tratará como texto/plano, por ejemplo, mostrando XML entidad MIME como texto sin formato. La aplicación/xml es preferible cuando la entidad XML MIME no se puede leer por usuarios ocasionales. He leído en algunas discusiones que text/xml puede ser obsoleto en el futuro, pero no estoy seguro de de eso.

Para JSON, el tipo MIME correcto es application/json. Ver SO question.

0

1) ¿Es importante establecer el tipo MIME correcto para un servicio web respuesta?

Sí, debido a la interfaz uniforme/limitación del mensaje de autodescripción. Los mensajes deben contener toda la información necesaria para procesarlos.

2) ¿cuál es el tipo MIME correcto para una,

Depende de lo que pide el cliente. Debes verificar el encabezado de aceptación. Usamos generalmente application/xml por los servicios y text/xml al servir archivos estáticos. Pero en realidad no importa.

Si envía hipervínculos a, puede utilizar un MIME específico del vendedor, o puede usar alguna solución de datos vinculada, como JSON-LD.