tutorial servicios restful que español entre ejemplo diferencia arquitectura rest media restful-architecture hateoas hypermedia

restful - servicios rest ejemplo



¿Cómo crear un tipo de medio personalizado(application/vnd) para un servicio web RESTful? (3)

Estoy jugando con REST en este momento y pensé implementar correctamente HATEOAS solo para tener todos los conceptos correctos.

Para eso quiero crear mis propios tipos de medios ( application/vnd[...]+xml y application/vnd[...]+json ).

Una primera pregunta: ¿el tipo de medio define el contrato entre mi servidor y el cliente?

El tipo de medio definirá mis formatos de mensaje, por lo que necesito agregar el esquema XML y el esquema JSON para ir con los nuevos tipos de medios (para que los clientes REST sepan qué viene en los mensajes y qué enviar de vuelta).

He hecho algunas investigaciones en la web, pero faltan los detalles de cómo se hace esto. ¿Solo implica escribir especificaciones / documentaciones exhaustivas o hay algunos pasos técnicos para implementar? (No tengo que registrarlo en IANA do I?)

¿Cómo se puede crear un nuevo tipo de medio de application/vnd completamente funcional? y ¿de qué debe ocuparse para que los clientes puedan usarlo correctamente?


¿El tipo de medio define el contrato entre mi servidor y el cliente?

No, el tipo de medio solo define el tipo (por ejemplo, la aplicación) y el subtipo (por ejemplo, json) de los datos

¿Cómo se puede crear un nuevo tipo de medio de aplicación / vnd completamente funcional? y ¿de qué debe ocuparse para que los clientes puedan usarlo correctamente? ( http://www.ietf.org/rfc/rfc2046.txt?number=2046 )

Si decide crear su propio subtipo de medios personalizados y espera que se use ampliamente, debe registrarse en la IANA ( http://www.iana.org/assignments/media-types ). Esta es una forma estándar de compartir información fuera de banda con clientes potenciales.


@JohnDoDo

Una primera pregunta: ¿el tipo de medio define el contrato entre mi servidor y el cliente?

Sí, el tipo de medio es una parte del contrato. El contrato en REST API no es estático a diferencia de SOAP (es decir, WSDL). El contrato se define mediante la combinación del protocolo subyacente (es decir, HTTP), URI y tipos de medios (no está prohibido usar varios tipos de medios juntos). El tipo de medio define el modelo de datos, el modelo de procesamiento, los controles de hipermedios (es decir, enlaces anotados, formularios de entrada, etc.) y admite incluir información adicional específica de la aplicación descrita por relaciones de enlace, nombres de elementos, identificadores, nombres de clase, etc.

El tipo de medio definirá mis formatos de mensaje, por lo que necesito agregar el esquema XML y el esquema JSON para ir con los nuevos tipos de medios (para que los clientes REST sepan qué viene en los mensajes y qué enviar de vuelta).

Solo necesita definir esquemas genéricos que cubran la estructura del documento. No necesita definir esquemas separados para mensajes particulares. Sus mensajes deben tener pies en la estructura definida por tipo de medio.

¿Cómo se puede crear un nuevo tipo de medio de aplicación / vnd completamente funcional? y ¿de qué debe ocuparse para que los clientes puedan usarlo correctamente?

  1. Descríbalo (es decir, especifique el formato de escritura);
  2. Regístrese en IANA: http://www.iana.org/cgi-bin/mediatypes.pl registrando el tipo de medio bajo vnd. * El árbol tarda casi una semana en registrarse.