En el diseño de la API REST, ¿cuál es la diferencia entre representación y tipo de contenido? ¿Cuál es la diferencia entre puntos finales y recursos?

Una representación es la estructura del recurso, no vinculada a ninguna sintaxis de codificación. Por ejemplo, si lo mío es una carta, mi estructura podría ser:

fecha, de nombre, de dirección, de nombre, de dirección, contenido

O podría ser:

fecha de envío, número de páginas, número de palabras, desde, hasta, firma, saludo, tamaño de papel, contenido

Estas son dos representaciones diferentes de lo que es una letra, adecuada para diferentes propósitos.

Cualquiera de las representaciones podría estructurarse como XML, JSON o ProtoBuf. La convención dice que el tipo de contenido debe usarse para indicar cómo se codifica su representación.

Sin embargo, también podríamos tener una imagen de la carta. Esa es otra representación razonable, pero no tiene mucho sentido tener una codificación JSON de una imagen. Además, para confundir las cosas, el viejo y simple HTTP usa el tipo de contenido para indicar si algo es una imagen, por lo que queremos seguir con eso. Esto significa que, en algunos casos, su tipo de contenido también le dará una representación diferente, no solo una codificación diferente de la misma representación.

Los puntos finales y los recursos están estrechamente vinculados. Mi recurso es una carta. Mi punto final será algo así como:

/ cartas / 98

Lo que devolverá una representación de la letra número 98

O, si mi recurso es una lista de letras, el punto final podría ser:

/ letters? from-name = Fred + Bloggs

Lo que devolverá una representación de una lista de letras, incluidas solo las cartas de Fred Bloggs

[1] El término REST significa transferencia de estado representativo basado en la solicitud HTTP y el mecanismo de respuesta.

En el contexto de REST API Representation se define como el formato del cuerpo de respuesta HTTP que se envía al cliente REST.

XML y JSON son los formatos de respuesta más populares utilizados para la representación de datos de respuesta API.

El encabezado Content-Type es un encabezado de solicitud HTTP que proporciona información relacionada con el formato de los datos de solicitud que el cliente envía al servidor como parte de la solicitud HTTP.

Los recursos representan entidades en un sistema basado en REST y los puntos finales son acciones realizadas por los recursos que exhiben el comportamiento de los recursos en un sistema.

Para obtener información detallada sobre los servicios web REST, consulte la documentación de la API REST como se menciona en un artículo publicado por mí.

http://webrocom.net/traversing-

Notas al pie

[1] Recorriendo los servicios web REST – WEBROCOM

Digamos que he desarrollado una API REST para recuperar los detalles de un empleado:

Para obtener los detalles del empleado EMP00001, debemos enviar una solicitud HTTP GET a http: // localhost: 8080 / employee / EMP00001 .

La solicitud y la respuesta HTTP tienen el siguiente aspecto:

Encabezado de solicitud:

Tipo de contenido: application / json
Aceptar: aplicación / json

Encabezado de respuesta:

Largancia de contenido:
431
Tipo de contenido:
aplicación / json
Fecha:
Martes, 03 oct 2017 17:08:01 GMT

Cuerpo de respuesta:

{
“empId”: “EMP00001”,
“empName”: “Jane Austen”,
“DOJ”: 01/01/2017
}

Asi que,

  1. Representación del empleado Recurso

{
“empId”: “EMP00001”,
“empName”: “Jane Austen”,
“DOJ”: 01/01/2017
}

  1. Tipo de contenido : aplicación / json (tenga en cuenta que está presente tanto en el encabezado de solicitud como en el de respuesta. Por lo tanto, esto indica si el contenido del cuerpo de solicitud / respuesta está en formato JSON (aplicación / json), formato XML (aplicación / xml) o cualquier otro formato
  2. Punto final : http: // localhost: 8080 / employee / E