¿Qué es una RESTful API?

5/25
Recursos

Aportes 27

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

REST: Representational State Transfer

Es una conveccion que se refiere a servicios web por protocolo HTTP

Metodos:

  • Get: Obtener
  • Put: Modificar/Actualizar
  • Patch: Modificar/Actualizar
  • Post: Crear
  • Delete: Eliminar

Patch

El método de solicitud HTTP PATCH aplica modificaciones parciales a un recurso.

PATCH es algo análogo al concepto de “actualización” que se encuentra en CRUD, Una solicitud se considera un conjunto de instrucciones sobre cómo modificar un recurso. Contrasta esto con PUT; que es una representación completa de un recurso.PATCH

Mo es necesariamente idempotente, aunque puede serlo. Contrasta esto con PUT; que siempre es idempotente.

La palabra “idempotente” significa que cualquier número de solicitudes repetidas e idénticas dejará el recurso en el mismo estado.

Por ejemplo, si un campo de contador de incremento automático es una parte integral del recurso, entonces un PUT lo sobrescribirá naturalmente (ya que sobrescribe todo), pero no necesariamente para .PATCH

PATCH (como POSTpuede tener efectos secundarios sobre otros recursos.

PATCH - HTTP | MDN

Busque un poco para entender mas que es un web service, esto me gusta hacerlo antes de ver la clase inclusive de esa forma me queda mas claro los conceptos, les dejo el enlace donde lo explican.

Que bien se siente cuando se nota que el profesor del curso domina realmente un tema y, por lo tanto, se le facilita transmitir la información de manera potable y digerible. 👏👏👏👏
Este curso promete!

API Restful.

  • REST: Representational State Transfer
    Es una convención que comúnmente se utiliza para desarrollar servicios web, que al final se comunican por el protocolo HTTP.

  • Este protocolo tiene varios métodos:

    1. El método GET
    2. PUT
    3. PUSH (Son hermanitos)
    4. POST
    5. DELETE.
  • La convención de REST nos dice que por cada casi entidad que tengamos tendremos una ruta, un endpoint con un nombre, y también deberíamos tener un id por cada producto.

Si queremos obtener la lista de productos usaremos el método GET con la ruta de productos.
Sí queremos una ruta en particular repetimos el endpoint, pero esta vez enviamos el id.

  • PUT, podríamos usar Replace y modificar una lista entera (mala práctica), lo ideal es usarlo con un solo producto
  • PATCH, podemos hacer una actualización mucho más detalladas, de que cosas quiero modificar.
  • POST, nos sirve para crear.
  • DELETE, no deberíamos eliminar en masa, es muy peligroso, ideal es eliminar uno a uno

Complementando un poco sobre la clase, encontré este video sobre REST y RESTful APIs
Recomendado… 😉

REST: Representational State Transfer
⠀⠀
El diseño REST o RESTful API (Representational State Transfer) está diseñado para aprovechar los protocolos existentes.⠀⠀
⠀⠀
Si bien REST se puede usar en casi cualquier protocolo, generalmente aprovecha HTTP cuando se usa para API web.⠀⠀
⠀⠀⠀⠀
Esto significa que los desarrolladores no necesitan instalar bibliotecas o software adicional para aprovechar un diseño de API REST. REST API Design fue definido por el Dr. Roy Fielding en su disertación de doctorado de 2000. Destaca por su increíble capa de flexibilidad. Dado que los datos no están vinculados a métodos y recursos, REST tiene la capacidad de manejar múltiples tipos de llamadas, devolver diferentes formatos de datos e incluso cambiar estructuralmente con la implementación correcta de hipermedia.

https://www.mulesoft.com/resources/api/what-is-rest-api-design#:~:text=REST or RESTful API design,when used for Web APIs.

Les comparto una página
Métodos de solicitud HTTP

https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods

Les dejo la tabla con los métodos, me pareció muy buena.

Excelente explicacion, se nota que el profesor domina el tema.

Representaion State Transfer

Es una convencion (una forma de crear API, es decir lógica de restrincciones y recomendaciones) que existe en backend para hacer servicios web que se comunican a través del protocolo HTTP

Este protocolo tiene varios verbos y define como queremos modificar o alterar cierta información, estos son:

  • GET: Es el método que se utiliza para solicitar información, no deberia tener otros efectos a parte de recibir la data. Por ejemplo: Solicitarle a la aplicación todos los datos de una entidad de la DB o los datos de un ID espécífico.
    • Datos en lista y en detalle
  • PUT: Es el método modificador, usualmente se envía también el id del elemento que deseo modificar, Por ejemplo: Soy un Admin y deseo modificar un titulo, una imágen, un texto.
    • Datos en lista y en detalle (MALA PRACTICA)
  • POST: Es para crear, si queremos crear un producto, debe ser a través de este método.
  • DELETE: Para eliminar información
    • Datos en lista y en detalle (MALA PRACTICA)

La convencion de REST nos dice que deberiamos (casi) siempre tener una ruta por entidad (entidad: usuarios → route /users )

El diseño REST o RESTful API está diseñado para aprovechar los protocolos existentes.⠀⠀

Si bien REST se puede usar en casi cualquier protocolo, generalmente aprovecha HTTP cuando se usa para API web.⠀⠀

Es decir. UTILIZAREMOS LOS MÉTODOS QUE EXISTEN EN HTTP PARA CREAR LA ARQUITECTURA DE NUESTRA API

Utilizando Métodos para la forma de nuestra API RESTfull

Cuando se crea una API utilizando la arquitectura (mejor conocido como web service) REST, se dice que es una API RESTfulll

Se puede utilizar el método con la ruta general para traer toda la entidad o con un {id} para ser más específico (en algunos casos no aplica)

Hacer PUT y DELETE a una lista es una MALA PRACTICA

Diferencia entre PUT y PATCH

  • PUT tiene que actualizar todos los valores
  • PATCH actualiza solo un valor deseado.

Super claro el tema, su forma de explicar lo hace más sencillo

Buenísimo súper clara la explicación! 🙌

Diseñando un API con arquitectura REST

Complementando los aportes en este episodio, tenemos un conjunto de definiciones, o métodos, que permiten acceder o manipular la información según un conjunto de requerimientos los cuales son conocidos como endpoints.
.

Anatomía de un URL

Dependiendo del diseño que se desea adoptar, una URL se compone de lo siguientes elementos:
.

.

  • Protocolo - Define el medio con el cual se comunicarán los aplicativos (SMTP, FTP, SSH, etc), en el caso web HTTP o HTTPS.
  • Host - Conocido como el nombre del dominio que define un nombre identificativo de nuestro servidor web; en localhost definimos como scope de la máquina en tema.
  • Protocolo - Definiendo el acceso de comunicación que generalmente se relaciona con el protocolo Http(8080) o Https(443).
  • Endpoint - Definiendo la ruta de acceso a la información la cual puede definirse como:
    • Contexto - Definición raíz de la API REST
    • Versión - (Opcional) Etiqueta
    • Recurso - (Opcional) Modelo de información
    • Parámetro - (Opcional) Selección índice o pivote
    • Query - (Opcional) Solicitud iterativo

.

OpenAPI

📚 Documentación
.
Como la documentación lo indica, es una especificación que define un formato de descripción para APIs REST. Con ella, podemos diseñar, mediante documentación, su definición y comportamiento, ya sea con formato JSON, YAML(YML) o Raml.
Existen diferentes plataformas que emplean su descripción, como OpenSource o privado, que entregan diferentes posibilidades a la hora de empezar y escalar los proyectos de software.
.
Algunos ejemplos son:

.
Un ejemplo sería el siguiente Gist ⚡️

Ahora entiendo los get y los post

Se puede utilizar Post para editar un dato pero lo buena practica es usar Put

CRUD (Create, Read, Update, Delete) es un acrónimo para las maneras en las que se puede operar sobre información almacenada

Get: Obtener
Put: Modificar/Actualizar/ Permite Modificaciones masivas (No es buena practica)
Patch: Modificar/Actualizar/
Post: Crear
Delete: Eliminar

Tambien puedes visitar el sitio de jonmircha.com, donde esplica de manera muy detallada lo que son las APIs y las RESTful

REST
Internet es comunicación constante entre servidores y clientes.
REST (Representational State Transfer), es un modelo de arquitectura de software.
Vinculado al protocolo de http, consiste en una serie de directrices para mejorar las comunicaciones cliente-servidor.
En 1999, Roy Fielding, uno de los desarrolladores de HTTP, define los principios clave de la comunicación cliente-servidor entorno a los estándares HTTP y URI, el nacimiento de REST.
Los principios son:

  • Todo es un recurso: representado por un formato.
  • Con identificador único: accesible a través de URIs.
  • Usa métodos HTTP estándar: GET, POST, PUT, DELETE, HEAD, OPTIONS, TRACE, CONNECT
  • Puede tener múltiples representaciones: un recurso XML puede tener representación JSON.
  • Comunicación sin estado: cada petición al servidor es tratada de modo independiente. Las APIs RESTul deben ser sin estado.

A pesar de ser tan antigua, se vuelve popular recientemente debido a la importancia de los servicios web y problemas entorno al SOAP (Simple Object Acces Protocol.
RESTful son los servicios web que siguen los principios REST.

Dejo este recurso:
https://www.youtube.com/watch?v=pVAMOielOJQ
Explica de forma extensa que es REST, API y REST ful API

Get: Obtener
Put: Modificar/Actualizar
Patch: Modificar/Actualizar
Post: Crear
Delete: Eliminar

La vieja confiable, la Wikipedia. Transferencia de estados representacionales, REST

Excelente clase, con esto queda más claro muchos conceptos que había estado usando pero no entendía del todo.

Este curso es realmente bueno, impresionante la claridad del profesor!

VERBOS HTTP

  • GET: Verbo exclusivo para obtener recursos del servidor.

  • POST: Verbo exclusivo para crear nuevos recursos en el servidor.

  • PUT: Verbo reemplaza un recurso por completo en el servidor.

  • PATCH: Verbo que modifica parcialmente el recurso en el servidor.

  • DELETE: Verbo que elimina física o lógicamente el recurso en el servidor.

Nota: Un recurso es la unidad mínima de REST, cada url o endpoint se le conoce como recurso.

  • REST: REpresentational State Transfer
  • Metodos: GET (obtener), PUT(Modificar) or PATCH (update sólo el campo indicado), POST(Crear), DELETE(Eliminar)

Este profesor se explica muy bien.