¿Cómo funciona una API REST?

Nikhil y Leonid han dado algunas buenas respuestas sobre cómo se diseñan las API REST. Agregaré algunos detalles sobre cómo trabajar con las API.

(Esto se toma de Trabajar con API donde el formato es un poco más agradable. Para solucionar problemas de API, consulte Solución de problemas de API)

Las API REST, al igual que los sitios web normales, usan HTTP para la comunicación. Por lo general, el funcionamiento interno de HTTP está oculto para nosotros, como usuarios. Sin embargo, al probar o depurar APIs es necesario comprender exactamente qué comprende una solicitud HTTP a un servidor y cómo un servidor responde a dicha solicitud.

Solicitudes HTTP

Todas las solicitudes HTTP deben tener al menos dos líneas. La primera línea muestra el método de solicitud, una ruta en el servidor y la versión de HTTP a utilizar. En el siguiente ejemplo, estos valores son GET , /index.html y HTTP / 1.1 respectivamente. Además, una solicitud HTTP debe indicar el host al que se debe hacer la conexión (opcionalmente, también se puede especificar el puerto en el host).

OBTENER /index.html HTTP / 1.1
Anfitrión: Pruebas API

Solicitar encabezados
La línea Host es un ejemplo de un encabezado de solicitud HTTP. Una solicitud puede tener muchos otros encabezados, pero solo el encabezado Host es obligatorio. Consulte wikipedia para obtener una lista de encabezados de solicitud HTTP estándar. Un encabezado con el que probablemente ya esté familiarizado es el encabezado de agente de usuario que describe el software (por ejemplo, un navegador, como Internet Explorer) que se está utilizando para conectarse al servidor. Otros encabezados de solicitud de nota particular son Aceptar, Autorización y Tipo de contenido.

  • Aceptar encabezado. El encabezado Aceptar indica los tipos de contenido que son aceptables en la respuesta del servidor. Algunas API usan el encabezado Aceptar para indicar la versión de una API que se debe usar. (Para ver un ejemplo de esto y una versión agradable del estado de las versiones de API, consulte Troy Hunt)
  • Encabezado de autorización. Algunas API requieren que las credenciales de autenticación de un usuario (como nombre de usuario y contraseña o token de acceso) se proporcionen en el encabezado de Autorización.
  • Encabezado de tipo de contenido. Además de los encabezados, una solicitud HTTP puede incluir un cuerpo de datos. El encabezado Content-Type se usa para indicar al servidor cómo se formatea el cuerpo de la solicitud. Por ejemplo, si el cuerpo está en formato JSON, el tipo de contenido de la solicitud debe ser application / json .

Además de los encabezados de solicitud estándar, también es posible incluir encabezados personalizados (es decir, cualquier par clave-valor arbitrario). Un uso de los encabezados personalizados es especificar la versión de la API que se utilizará. Nuevamente, vea Troy Hunt para ver un ejemplo de esto.

Métodos de solicitud
En el ejemplo anterior, el método de solicitud es GET. Los métodos de solicitud más utilizados con las API son GET, POST, PUT, PATCH y DELETE. No hay reglas absolutas sobre cómo se usa cada uno de estos métodos, pero por convención los métodos se usan de la siguiente manera.

  • GET se usa para leer del servidor un solo elemento (conocido como recurso en API speak) o una lista de elementos (conocida como una colección ). Al leer un recurso específico, el identificador único del recurso se especifica como parte de la URL. Los GET normalmente no tienen un cuerpo de solicitud.
  • POST se utiliza para escribir en el servidor un nuevo recurso. Los detalles del nuevo recurso se incluyen en el cuerpo de la solicitud. La respuesta del servidor debe incluir el identificador único del recurso recién creado.
  • PUT y PATCH se usan para actualizar un recurso. El identificador único del recurso generalmente se especifica en la URL y los campos actualizados se proporcionan en el cuerpo de la solicitud.
  • DELETE se usa para eliminar un recurso con el identificador único del recurso que se especifica en la URL y la solicitud no tiene cuerpo. Algunas API también usan el método DELETE para eliminar varios recursos a la vez. En este caso, los identificadores únicos de cada recurso a eliminar se especifican en el cuerpo de la solicitud.

Respuestas HTTP

Una respuesta HTTP consta de una línea de estado, encabezados de respuesta y, en la mayoría de los casos, un cuerpo de respuesta.

Estado de respuesta
La línea de estado de una respuesta incluye el código de estado que indica el resultado general del procesamiento de la solicitud. Los códigos de estado de respuesta se agrupan en cinco categorías con el primer dígito del código que indica la clase de respuesta,

  • 1xx La solicitud se recibió y se está procesando. Los códigos en este rango rara vez se ven.
  • 2xx La solicitud se procesó correctamente.
  • Se requiere la redirección 3xx a otra URL. (Las diferentes herramientas que usamos para interactuar con las API normalmente manejan las redirecciones de forma automática y, por lo tanto, es inusual cuando se trabaja con API para que se les presente un código de estado en el rango 3xx).
  • 4xx Hubo un error en la solicitud.
  • 5xx El servidor no pudo cumplir la solicitud debido a un problema en el lado del servidor.

A través de la navegación web general, todos hemos encontrado el código de estado 404 (página no encontrada) y muy probablemente el código de estado ocasional 500 (error interno del servidor). Los códigos de estado comunes cuando se trata con API son,

  • 200 Éxito. Este es el estado estándar cuando la respuesta es normal y no se encontró ningún problema.
  • 201 Recurso creado. Por lo general, en respuesta a una solicitud POST, esto indica que se creó un recurso.
  • 400 La solicitud original era incorrecta o mal formada de alguna manera.
  • 401 Las credenciales de autenticación del usuario no se proporcionaron o no fueron válidas. es decir, el equivalente API de ID de usuario / contraseña no es válido 1.
  • 403 No tiene autoridad para hacerlo (por ejemplo, un usuario normal intenta realizar una acción solo disponible para usuarios administradores)
  • 404 En un contexto API, un estado 404 puede tener dos significados. El primero es similar a ‘página no encontrada’ y significa que la URL no existe. La URL puede estar completamente equivocada o quizás una URL correcta tiene un error tipográfico. Por ejemplo, la URL para enumerar todas las empresas puede haberse ingresado como / api / kompany pero debería haber sido / api / company.
    El otro significado de un 404 en un contexto API es que, aunque la URL está bien formada, el recurso identificado por la URL no existe. Por ejemplo, la URL para obtener una empresa con un identificador único de 54321 puede ser / api / company / 54321, pero si esa empresa no existe (quizás se eliminó), el servidor debería devolver un 404.
  • 500 Es probable que el programa que maneja la solicitud arrojó una excepción no detectada (es decir, hay un error en el código del lado del servidor; incluso si la solicitud original era de alguna manera incorrecta, el servidor debería devolver un estado en el rango 4xx y no un 500) .
  • 502 Normalmente indicativo de un error que surge entre dos de los servidores involucrados en responder a una solicitud.
  • 503 Un recurso técnico o servicio en el lado del servidor no está disponible en este momento. Esto puede ser una condición temporal.

Es importante tener en cuenta dos cosas sobre los códigos de estado al depurar las API.

En primer lugar, no hay forma de aplicar estrictamente el uso de un código de estado dado para una situación dada. Los códigos utilizados pueden incluso variar dentro de la misma API. Los desarrolladores pueden tener diferentes interpretaciones sobre qué código de estado se debe usar para diferentes eventos y algunos desarrolladores pueden desconocer que ciertos códigos de estado están disponibles. En el caso de crear un recurso con una solicitud POST, a menudo se usa un código 200 en lugar del código correcto, 201. Es poco probable que la diferencia entre 200 y 201 sea un problema. Más problemáticos son los errores de la serie 4xx cuando una solicitud no está bien formada. Por ejemplo, si el valor 13 se especificó para un campo que representa un número de mes, ¿cuál debería ser el código de estado? Probablemente un 400 pero no se sorprenda al ver un 403 devuelto. Incluso un 500 es posible si el servidor termina generando una excepción debido al valor defectuoso.

La segunda cosa a tener en cuenta sobre los códigos de estado es que no todos son generados por el código que sus programadores de back-end han escrito. Cuando se realiza una solicitud HTTP, normalmente se procesa primero por software de servidor web, como Apache o Nginx. Solo si la solicitud se ve bien para el servidor web, se pasará al servidor de aplicaciones. Antes de que la solicitud llegue al código de los desarrolladores de back-end, es probable que pase a través de una capa de middleware que puede tener su propio código de comprobación de errores. Finalmente, el código de sus desarrolladores manejará cualquier solicitud que pase el servidor web y el middleware.

Considere algunos ejemplos,

  • Si una solicitud es más grande de lo que Apache está configurado para manejar, Apache responderá con un código de estado 413 y la solicitud nunca llegará al servidor de aplicaciones.
  • Puede ser que Nginx responda con un código de estado 404 para un punto final inexistente (/ api / kompany en nuestro ejemplo anterior) pero el código de la aplicación es responsable de devolver un 404 para indicar que un recurso en particular no existe (/ api / empresa / 54321 en nuestro ejemplo anterior).
  • El middleware puede ser cuerpos de solicitud de preprocesamiento. Dependiendo del middleware, puede rechazar solicitudes con un encabezado de tipo de contenido de aplicación / json si el cuerpo de la solicitud tiene un formato JSON incorrecto.

Comprender dónde se pueden generar los códigos de estado es fundamental al crear planes de prueba de API y al depurar API.

Encabezados de respuesta
Hay varios encabezados de respuesta estándar y la mayoría de los servidores usan varios encabezados para cada respuesta. Además, también se pueden usar encabezados personalizados. En el mundo API, uno de los usos más comunes de los encabezados personalizados es proporcionar información de paginación al devolver una colección para indicar el número total de páginas que están disponibles y el rango particular de elementos en la respuesta actual.

Si una API no se comporta como se esperaba, ciertamente vale la pena examinar los encabezados de respuesta en busca de pistas sobre un problema, pero en el uso normal el encabezado Content-Type es probablemente el más útil. Este encabezado indica cómo se formatea el cuerpo de la respuesta. Por ejemplo, el encabezado Content-Type para un cuerpo JSON es probable que sea application / json; juego de caracteres = UTF-8 .

Navegadores API

Al explorar y depurar las API, necesita una herramienta que le permita interactuar con la API y manipular el encabezado y el cuerpo de la solicitud. Hay muchas opciones.

  • rizo. Esta herramienta de línea de comandos viene de serie con el sistema operativo Mac OS X y con todos los sabores de UNIX.
  • El violinista de Telerik. Esta es una descarga potente y gratuita que es ideal para depurar sitios web y API.
  • Software comercial Para algunas llamadas rápidas a una API, curl o Fiddler son excelentes, pero si planea probar y monitorear a fondo una API, hay una serie de herramientas comerciales disponibles.

rizo
Si tienes una Mac, entonces ya tienes acceso a curl. Haga clic en la aplicación Terminal desde Aplicaciones / Utilidades, para abrir una ventana de terminal.

Ingrese curl -v mock.one/200 en la ventana de terminal y verá una salida similar a la siguiente. La -v indica que la salida debe ser detallada (la salida detallada de curl incluye los encabezados de solicitud y respuesta). El dominio mock.one es un servidor configurado con fines de prueba y la URL mock.one/200 se ha configurado con fines de prueba y simplemente devuelve la cadena que you have been served a 200 mock.one/200 you have been served a 200 .

* Intentando 52.1.95.2 …
* Conectado a mock.one (52.1.95.2) puerto 80 (# 0)
> GET / 200 HTTP / 1.1
> Anfitrión: mock.one
> Usuario-Agente: curl / 7.43.0
> Aceptar: * / *
>
<HTTP / 1.1 200 OK
<Fecha: sáb, 03 oct 2015 06:13:00 GMT
<Servidor: Embarcadero
<Tipo de contenido: texto / html; charset = UTF-8
<Contenido-Longitud: 26
<Variar: aceptar-codificación
<Conexión: cerrar
<* Conexión de cierre 0
te han servido 200

Puede ver en este resultado que el comando curl incluyó automáticamente tres encabezados de respuesta en nuestro nombre. El primero es el encabezado Host obligatorio, los otros dos son los encabezados User-Agent y Accept . El tipo de solicitud es GET y no hay cuerpo de solicitud.

La primera línea de respuesta del servidor es la línea de estado que muestra el código de estado como 200. También se incluye el texto equivalente a 200, OK . Los encabezados de respuesta son Fecha , Servidor , Tipo de contenido, Longitud de contenido , Variar y Conexión . El cuerpo real de la respuesta es solo la cadena de texto que se le ha entregado un 200.

Dado que esta solicitud es una solicitud GET, en realidad puede ver la misma URL utilizando un navegador normal. Haz clic aquí para hacerlo. (Cuando ingresa una URL en un navegador normal, el navegador envía una solicitud GET al servidor).
Ahora intentemos una solicitud POST con el siguiente comando,

curl -v -X POST -H "Content-Type: application/json" --data '{"name":"Megacorp","Employees":950000}' --user supersecret: mock.one/api/company

Como puede resolver, el indicador -X se usa para el método de solicitud, -H para un encabezado, --data para el cuerpo y --user para las credenciales. El resultado de este comando se ve así,

* Intentando 52.1.95.2 …
* Conectado a mock.one (52.1.95.2) puerto 80 (# 0)
* Autenticación del servidor usando Basic con el usuario ‘supersecret’
> POST / api / empresa HTTP / 1.1
> Anfitrión: mock.one
> Autorización: Basic c3VwZXJzZWNyZXQ6
> Usuario-Agente: curl / 7.43.0
> Aceptar: * / *
> Tipo de contenido: application / json
> Contenido-Longitud: 38
>
* carga completamente enviada: 38 de 38 bytes
<HTTP / 1.1 200 OK
<Fecha: sáb, 03 oct 2015 06:30:24 GMT
<Servidor: Embarcadero
<Tipo de contenido: aplicación / json; charset = utf-8
<Contenido-Longitud: 38
<Conexión: cerrar
<
* Conexión de cierre 0
{“nombre”: “Megacorp”, “Empleados”: 950000}

Observe que curl inserta automáticamente un encabezado de autorización en el formato correcto, incluida la conversión de supersecret a su equivalente de codificación Base64.

El servidor simulado utilizado en esta prueba simplemente responde con un cuerpo que es el mismo que el cuerpo de la solicitud. Es por eso que ve el mismo JSON en la respuesta que se envió originalmente en la solicitud POST original.

Como puede ver, curl es una gran herramienta para explorar las API y proporciona una manera fácil de ver los encabezados de solicitud y respuesta.

Asumiendo que su pregunta es cómo funciona el diseño de API REST, aquí hay un resumen y detalles

Resumen
El diseño RESTful API implica romper el sistema en términos de recursos y proporcionar acceso a esos recursos a través de puntos finales (también llamados operaciones) definidos en los uris base del servicio web. El acceso se realiza mediante métodos HTTP estándar y se controla mediante un mecanismo de autenticación . La configuración del recurso se proporciona y se obtiene mediante solicitud y respuesta con códigos de estado HTTP que comunican el estado.

Detalles
1. Los recursos son las entidades que existen en el sistema que se pone RESTful. Por ejemplo, en el caso de un sitio web de blogs, estos pueden ser blogs, publicaciones y comentarios. Para un portal de compras en línea, los recursos son clientes, productos y pedidos. En el caso de un EchoSign, son acuerdos y usuarios (foto a su izquierda)

2. Los puntos finales u operaciones proporcionan un mecanismo a través del cual se puede acceder a estos recursos. Por ejemplo, el punto final para enumerar todas las publicaciones de blog en un blog en particular sería GET en / blogs / {blogId} / posts. Para crear un nuevo pedido en el portal de compras, uno haría una POST en / pedidos de punto final. Los detalles de un acuerdo específico en EchoSign pueden obtenerse haciendo una solicitud GET en el punto final / terms / {AgreementId}

3. Los URI base definen la ubicación de la uri web donde los recursos están disponibles a través de los puntos finales. Para tomar un ejemplo real, para el blogger de Google, la base_uri es Página en googleapis.com. Para la solución de firma electrónica EchoSign, la base_uri es la página en echosign.com. Para realizar operaciones en recursos, simplemente agregue el punto final al base_uri. En EchoSign, use una página GETon en echosign.com con AgreementId como el identificador para obtener los detalles completos de ese acuerdo (foto arriba)

4. Métodos HTTP es donde reside la simplicidad de REST. En el diseño RESTful API, las operaciones en los recursos se realizan a través de los métodos HTTP estándar, principalmente GET, POST, PUT y DELETE. Otros métodos HTTP -OPTIONS, HEAD, PATCH también se utilizan en algunos casos. Los siguientes son algunos de los métodos y puntos finales disponibles en el recurso de acuerdos EchoSign

5. Auth representa colectivamente tanto la autenticación (identificándose en el sistema) como la autorización (nivel de acceso basado en su identidad). Existen múltiples mecanismos de autenticación que utilizan las API REST. EchoSign, por ejemplo, actualmente admite API_KEYS, token de acceso BasicAuth y tokens de acceso basados ​​en OAuth. La documentación de EchoSign REST API le permite hacer un solo clic y emitir interactivamente tokens de acceso OAuth del alcance deseado para diferentes puntos finales. Por ejemplo, a continuación estamos solicitando un token de acceso OAuth que le permite a un administrador ver los detalles de un usuario en su cuenta.

6. Solicitud y respuesta son las mismas que en la comunicación estándar cliente-servidor. Solicitud, proporciona una forma de especificar detalles para crear / actualizar un recurso o filtros para llegar a un recurso específico. La respuesta a su vez devuelve la identificación del recurso específico o sus detalles. La mayoría de los sistemas usan el formato JSON para el cuerpo y la respuesta de la solicitud, aunque también se puede usar XML.

7. Los códigos de estado HTTP se devuelven con la respuesta para transmitir el estado de su solicitud. Algunos comunes son: 200 – Éxito, 201 – Creado, 400 – Solicitud incorrecta, 401 – No autorizado, 404 – No encontrado y 500 – Error interno del servidor

Puedes leer mi artículo completo sobre esto en RESTful API Design

API significa interfaz de programación de aplicaciones.

Se compone de un conjunto de funciones a las que puede acceder y ejecutar otro sistema de software.

API actúa como una interfaz entre diferentes sistemas de software que construye su interacción e intercambio de datos.

API son de dos tipos a saber

JABÓN y DESCANSO

REST REST es el acrónimo de REpresentational State Transfer que ayuda a transferir datos a través de llamadas HTTP y los datos se pueden enviar o recibir en forma de JSON o XML.

Principios de REST:

Cliente-servidor – REST es una arquitectura cliente-servidor. El cliente y el servidor tienen un conjunto diferente de roles.

El servidor almacena y manipula información que la pone a disposición del usuario de manera eficiente.

El cliente toma esa información y se la muestra al usuario mientras realiza solicitudes de información posteriores. Esta segregación permite que tanto el cliente como el servidor actúen de forma independiente.

Sin estado: la comunicación entre el cliente y el servidor contiene toda la información necesaria para realizar la solicitud.

No hay estado de sesión en el servidor, ya que se mantuvo completamente en el lado del cliente. El acceso a cualquier recurso requiere autenticación, por lo tanto, el cliente debe autenticarse en cada solicitud.

Caché: la capacidad de almacenar datos de uso frecuente se llama almacenamiento en caché. La API REST se puede almacenar en caché, por lo que brinda la flexibilidad de reutilizar los datos de respuesta para solicitudes posteriores y del mismo tipo. Esto hace que la API REST sea más rápida y el rendimiento mejora en el lado del cliente, y debido a que la carga del servidor de almacenamiento en caché se reduce debido a un mejor margen de escalabilidad.

Junto con los principios mencionados anteriormente, la Interfaz uniforme, el sistema en capas y el Código bajo demanda también definen los conceptos para REST.

Las mejores prácticas de RESTful API se reducen a cuatro operaciones esenciales que hacen que cada operación use su propio método HTTP:

recibir datos en un formato conveniente = OBTENER – obtener

crear nuevos datos = POST – creación

actualización de datos = PUT – actualización (modificación)

borrar datos = DELETE – eliminación.

Todas las solicitudes tienen su respuesta, que se diferencian principalmente en códigos de estado HTTP de 5 clases, que son los siguientes:

1xx – informativo;

2xx – éxito;

3xx – redirección;

4xx: error del cliente;

5xx: error del servidor.

Método GET (obtener todos los proyectos que un usuario con id especificado):

{{url}} / users / 449 / projects

Respuesta:

{

“Id”: “1”,

“Nombre”: “Rajat”,

“Apellido”: “Sharma”

}

Método POST (la creación de una nueva entidad):

POST / usuarios.

Para crear una nueva entidad, los parámetros se pueden establecer en el cuerpo de la solicitud como:

{

“Nombre”: “Rajat”,

“Apellido”: “Sharma”

}

PUT / users / 11: actualiza una entidad de usuario con id = 449.

Los cambios deben especificarse en los parámetros. Si se actualiza correctamente, la solicitud devuelve el código 200 (OK) y la entidad debe actualizarse.

{

“Id”: “449”,

“Nombre”: “Rajat”,

“Apellido”: “Sharma”

}

DELETE / users / 449 – borra un usuario con id = 449.

Una vez que la eliminación de una entidad se realiza correctamente, devuelve 200 (OK) junto con el cuerpo de respuesta que contiene información sobre el estado de la entidad.

Solicitud ELIMINAR considerada como una solicitud idempotente. También puede devolver el código 204 (Sin contenido) sin el cuerpo de respuesta.

Para identificar los mejores escenarios para las pruebas de API y cómo puede lograr la cobertura de prueba más completa, únase a este seminario web gratuito, ‘El futuro de las pruebas de API: tendencias y cómo impulsar sus pruebas’ el martes 27 de marzo de 2018 a las 11:30 AM PST.

Regístrese con el siguiente enlace: The Future is API Testing – Webinar gratuito

Use verbos HTTP para llamadas a métodos

Cada vez que ve una página web, su navegador realiza una solicitud “GET”. La mayoría de las veces cuando envía un formulario, su navegador realiza una solicitud “POST”. También es posible enviar un formulario usando GET, que es muy común, pero POST no expone los datos enviados en la barra de direcciones del navegador.

En lugar de llamarlos solicitudes, realmente deberíamos llamarlos métodos. GET y POST son métodos por los cuales el navegador realiza solicitudes a través del protocolo HTTP.

Además de los métodos HTTP GET y POST, que es lo que usa su navegador, HTTP tiene otros métodos como PUT y DELETE, que generalmente no son conocidos por los no desarrolladores. Hay más métodos además de esos.

Con REST, podemos asignar aproximadamente POST, GET, PUT y DELETE a Create, Read, Update, Delete. Hay una pequeña advertencia sobre cuándo usar PUT y cuándo usar POST. La página en stackoverflow.com lo explica.

En lugar de hacer una llamada al método “getUser ()”, el desarrollador utiliza el método HTTP “GET” para hacer una solicitud a / cuenta. En lugar de hacer una llamada a “deleteUser ()”, el desarrollador utiliza el método HTTP “DELETE” para hacer una solicitud a / user. Para crear un usuario, el desarrollador puede usar el método “POST”.

Esto hace que las API REST sean legibles en inglés y, a menudo, lo suficientemente intuitivas como para no requerir que el desarrollador consulte la documentación de la API con tanta frecuencia.

Cada recurso se representa de forma exclusiva como una URL

Este es el fundamento del concepto. RE en REST significa “Representacional”

http://example.com/users/1 – este soy yo
http://example.com/users/2 – este eres tú

El concepto de una API REST es en realidad bastante simple. Alguna computadora (puede ser un teléfono, PC, Mac o servidor) envía una solicitud HTTP a otra computadora (generalmente un servidor). Esa computadora analiza la ruta, los parámetros de consulta y el cuerpo de la solicitud y luego realiza un trabajo útil para devolver algún valor a la computadora original. Cualquier API utilizada de esta manera en Internet se denomina “servicio web” y no necesariamente necesita usar REST.

Por ejemplo, supongamos que hay un servicio web hipotético donde puede almacenar archivos. Quizás la solicitud HTTP se vea así:

http://q.miximages.com/55000/REST/myfile.jpg?account=497134

Dónde,

  • “Https: //” indica que utilizará una conexión segura.
  • “Storage.com” es el dominio del servicio web.
  • “/Mydata/myfile.jpg” es la ruta e indica qué carpeta y un nombre de archivo donde desea almacenar los datos.
  • “Cuenta = 497134” es un parámetro de consulta que indica su número de cuenta en storage.com.

Los datos no se muestran, pero se pasan en el “cuerpo de la solicitud” de la misma manera que si se sube un archivo desde su navegador web. Esos datos se almacenarían como “myfile.jpg” en la carpeta “mydata”. En este ejemplo, parece que myfile.jpg es una foto, pero podría ser cualquier tipo de datos.

Al enviar datos usando HTTP, usaría una solicitud PUT o POST.

Comprensión: REST

Una vez que se almacenan los datos, el servicio web devolverá una respuesta correcta a la computadora que utilizó la API REST. O también podría devolver algún código de falla junto con un mensaje de error.

He encontrado un gran artículo que explica los conceptos básicos de las API RESTful: REST para Dummies o una breve introducción a una transferencia de estado representativa . Con suerte, esto también puede ayudarlo.