sábado, 29 de febrero de 2020

Que es una REST API?

REpresentational State Transfer (REST) es un estilo arquitectónico que maneja la relación entre cliente y servidor, con el propósito de obtener velocidad y rendimiento utilizando componentes reutilizables.

REST cómo tecnología fue introducida en 2000 en la tesis doctoral de Roy Fielding. Hoy en día se ha implantado de tal forma que es preferida a la tecnología SOAP (Simple Object Access Protocol) ya que usa menos ancho de banda y es más simple y flexible para su uso en internet. Podemos usarlo para recoger o suministrar información desde un web service y se hace vía petición HTTP al API REST.

Qué es un API REST?

Un API REST es una forma de acceder a un servicio web sin tener exceso de procesamiento. Cada vez que se llama a un API REST, el servidor transfiere al cliente una representación del estado de recurso solicitado.

¡De hecho usamos API REST todos los días! Cuando buscamos videos sobre ciclismo en youtube. Tecleas "ciclismo" en el campo de búsqueda de youtube, al presionar enter y se ve una lista de videos sobre ciclismo. Esta es la forma en que trabaja un API REST. Buscamos algo y obtenemos una lista desde el servicion web con los resultados de la busqueda solicitada.

Un API(application programming interface) es un conjunto de reglas que permite a un programa comunicarse con otro. Un desarrollador crea un API en un servidor y permite a otros programas hablar con ella.
REST determina el aspecto del API. Esto es, las reglas que los desarrolladores siguen cuando crean el API y cuando lo utilizan. Una de estas reglas establece que deberías obtener unos datos determinados cuando enlazas con una URL. A esta URL se le llama punto de entrada.
La URL es llamada request (petición) y los datos devueltos se llaman response (respuesta).

Arquitectura RESTful

Las características fundamentales de un API REST, son:
  • Sin estado: Ningún dato del cliente se almacena en el servidor. Lo necesario para mantener la sesión entre cliente y servidor se almacena en el cliente, típicamente en sessión storage.
  • Client<->eServidor: Hay clara separación de lo que hace el cliente(front-end) y lo que hace el servidor(back-end). Estos operan independientemente y son reemplazables.
  • Cache: Los datos provenientes del servidor se cachean en el cliente, esto mejora la velocidad de obtención de datos.
  • Composición de la URL: Se usa un enfoque estándar para la composición de las URLs. Por ejemplo, una petición con método GET "http://servidor/ciudades" devuelve una lista de ciudades mientras que "http://servidor/ciudades/burgos" desvuelve los datos de la ciudad de Burgos. Las APIS REST también ejecutan acciones para añadir, modificar o borrar datos como se explica a continuación.

REST en acción

La petición se envía desde el cliente al servidor vía HTTP como una URL que enlaza con una web. Está petición usa los métodos http GET, POST, PUT o DELETE. Entonces la respuesta es enviada desde el servidor en forma de recurso que puede ser HTML, XML, imagen o JSON. JSON es el más popular.

HTTP tiene entre otros los métodos: POST, GET, PUT, y DELETE. Estos métodos corresponden con las operaciones crear(create), leer(read), actualizar (update) y borrar (delete). Estas son llamadas las operaciones CRUD y son muy habituales en los aplicativos. Cada uno de estos métodos opera de la siguiente manera:
  • POST: Este método se usa para crear un nuevo recurso. Si todo va bien devuelve un código 201 con una cabecera conteniendo el enlace al nuevo recurso.
  • GET: Este método se usa para recuperar un recurso. Si todo va bien GET devuelve por ejemplo un XML o JSON con los datos solicitados y un código de respuesta 200. Si algo va mal devuelve un código de error, por ejemplo 404 Not Found o 400 Bad Request.
  • PUT: Se usa principalmente para actualizar un recurso o en casos especiales para crearlo. Un update que se ejecuta con éxito retorna un 200 o 204 sino devuelve ningún contenido en el body. Si se usa para creación y acaba bien devuelve un 201.
  • DELETE: Borra un recurso, normalmente se suministra el identificador. Después de un borrado con éxito devuelve 200.
Las operaciones CRUD se envían desde el cliente al servidor escribiendo una URI en un browser o haciendo un fetch en un programa. En los servidores se instalan servicios que responden a estas peticiones mediante distintos puntos de entrada. Un ejemplo de como son habitualmente estos puntos de entrada es:

GET  /device-management/devices      : recupera todos los devices
POST  /device-management/devices      : crea un nuevo device
GET  /device-management/devices/{id} : recupera el device con identificador id
PUT  /device-management/devices/{id} : actualiza el device con identificador id
DELETE /device-management/devices/{id} : borra el device con identificador id

Trabajando con los datos del API REST

También es una práctica habitual que el API REST devuelva datos en formato JSON. El formato  JSON (JavaScript Object Notation), cuando se reciben datos de un API Rest tienen el siguiente aspecto:

{

¿Dónde se pueden encontrar APIs REST? ¡¡¡Por todos los lados!!! Twitter. Google. Open Weather Map. YouTube.  La mayoría de los servicios más populares que se usan actualmente utilizan una arquitectura RESTful. Así que ¡adelante!, explorad el mundo de añadir funcionalidad de API a vuestros sitios WEB.

Conclusión

Hemos echado un vistazo a lo que es un API REST e indagado en lo que es arquitectura RESTful. Hemos visto como funciona un API REST a través de puntos de entrada y visto como es un fichero en formato JSON.


Este Post es una traducción e interpretación a mi entender del POST
https://itnext.io/javascript-fundamentals-an-introduction-to-rest-apis-7cbe8a809d3b

No hay comentarios:

Publicar un comentario