Alguna vez se preguntó cuál es la diferencia entre las solicitudes GET
y POST
, o cuándo usar PUT
? No estás sola. Tener una comprensión básica de los diferentes métodos HTTP, o verbos, un APIsupports es un conocimiento útil al explorar y probar las API.
En esta publicación, explicaré cómo se utiliza cada método HTTP y cómo incorporarlos en las pruebas de la API.
los Métodos HTTP
GET
POST
PUT
HEAD
DELETE
PATCH
OPTIONS
- GET
- Probar una API con solicitudes GET
- POST
- Probar una API con solicitudes POST
- PUT
- Probar una API con solicitudes PUT
- PATCH
- Probar una API con solicitudes de PARCHES
- ELIMINAR
- Probar una API con solicitudes de ELIMINACIÓN
- HEAD
- Probar una API con solicitudes HEAD
- OPCIONES
- Probar una API con solicitudes de OPCIONES
- Más recursos
GET
GET
solicitudes son los más comunes y los métodos utilizados en la Api de andwebsites. En pocas palabras, el método GET se utiliza para recuperar datos de un servidor en el recurso especificado. Por ejemplo, supongamos que tiene un APIwith un punto final /users
. Al realizar una solicitud GET a ese punto de conexión, se debe devolver una lista de todos los usuarios disponibles.
Dado que una solicitud GET solo solicita datos y no modifica ningún recurso, considera un método seguro e idempotente.
Probar una API con solicitudes GET
Cuando está creando pruebas para una API, el método GET
probablemente sea el tipo de solicitud más frecuente realizada por los consumidores del servicio, por lo que es importante verificar todos los endpoints conocidos con una solicitud GET.
En un nivel básico, estas cosas deben validarse:
- Compruebe que una solicitud GET válida devuelve un código de estado
200
. - Asegúrese de que una solicitud GET a un recurso específico devuelve los datos correctos. Por ejemplo,
GET /users
devuelve una lista de usuarios.
GET es a menudo el método predeterminado en los clientes HTTP, por lo que la creación de pruebas para estos recursos debe ser sencilla con cualquier herramienta que elija.
POST
En servicios web, POST
las solicitudes se utilizan para enviar datos al APIserver para crear o crear un recurso. Los datos enviados al servidor se almacenan en el cuerpo de la petición HTTP.
El ejemplo más sencillo es un formulario de contacto en un sitio web. Cuando rellena las entradas en un formulario y presiona Enviar, esos datos se colocan en el cuerpo de respuesta de la solicitud y se envían al servidor. Esto puede ser JSON, XML o parámetros de consulta (hay muchos otros formatos,pero estos son los más comunes).
Vale la pena señalar que una solicitud POST
no es idempotente. Modifica datos en el servidor backend (creando o actualizando un recurso), a diferencia de una solicitud GET
que no cambia ningún dato. Aquí hay una gran explicación de la idempotencia.
Probar una API con solicitudes POST
El segundo método HTTP más común que encontrarás en tus pruebas de API es POST
. Como se mencionó anteriormente, las solicitudes POST
se utilizan para enviar datos al servidor API y crear o actualizar un recurso. Dado que las solicitudes de publicación modifican los datos, es importante tener pruebas de API para todos tus métodos de PUBLICACIÓN.
Estos son algunos consejos para probar las solicitudes POST:
- Cree un recurso con una solicitud
POST
y asegúrese de que se devuelva un código de estado200
. - A continuación, haga una solicitud
GET
para ese recurso y asegúrese de que los datos se guardaron correctamente. - Agregue pruebas que garanticen que
POST
las solicitudes fallan con datos incorrectos o mal formateados.
Para más ideas sobre escenarios comunes de pruebas de API,echa un vistazo a esta publicación.
PUT
Simlar to POST, PUT
las solicitudes se utilizan para enviar datos a la API toupdate o crear un recurso. La diferencia es que las solicitudes de salida son inoportunas. Eso es, llamar a la misma solicitud de venta varias veces siempre producirá el mismo resultado. Por el contrario, llamar a una solicitud POST repetidamente hace que tenga efectos secundarios al crear el mismo recurso varias veces.
por lo General, cuando un PUT
solicitud se crea un recurso del servidor willrespond con un 201
Created
), y si la solicitud modifiesexisting de recursos, el servidor devolverá un 200
OK
) o 204
NoContent
).
Probar una API con solicitudes PUT
Probar una API PUT
los métodos son muy similares a probar POSTrequests. Pero ahora que conocemos la diferencia entre los dos(idempotencia), podemos crear pruebas de API para confirmar este comportamiento.
Compruebe estas cosas al probar solicitudes PUT:
- Llamar repetidamente a una solicitud
PUT
siempre devuelve el mismo resultado(idempotente). - El código de estado adecuado se devuelve al crear y actualizar un recurso (por ejemplo,
201
o200
204
). - Después de actualizar un recurso con una solicitud
PUT
, una solicitudGET
para ese recurso debe devolver los datos correctos. -
PUT
las solicitudes deben fallar si se proporcionan datos no válidos en la solicitud nothing no se debe actualizar nada.
PATCH
A PATCH
la solicitud es uno de los métodos HTTP menos conocidos, pero lo incluyo así de alto en la lista, ya que es similar a POST andPUT. La diferencia con PATCH
es que solo se aplican modificaciones parciales al recurso.
La diferencia entre PATCH y PUT, es que la solicitud de PATCH no es idempotente (como una solicitud POST).
Para ampliar la modificación parcial, supongamos que la API tiene un punto final/users/{{userid}}
y un usuario tiene un nombre de usuario. Con la solicitud aPATCH, es posible que solo necesite enviar el nombre de usuario actualizado en el cuerpo de la solicitud, en lugar de POST y PUT, que requieren la entidad de usuario completo.
Probar una API con solicitudes de PARCHES
Dado que el método PATCH
es tan sencillo de PUBLICAR y PONER, se aplican muchas de las mismas técnicas de prueba. Sigue siendo importante validar el comportamiento de cualquier punto final de API que acepte este método.
Qué buscar al probar solicitudes de PARCHES:
- Una solicitud exitosa
PATCH
debe devolver un código de estado2xx
. -
PATCH
las solicitudes deben fallar si se proporcionan datos no válidos en la solicitud nothing no se debe actualizar nada.
La semántica de las solicitudes de PARCHES dependerá en gran medida de la API específica que esté probando.
ELIMINAR
El método DELETE
es exactamente como suena: elimine el recurso en la URL especificada. Este método es uno de los más comunes en RESTfulAPIs, por lo que es bueno saber cómo funciona.
Probar una API con solicitudes de ELIMINACIÓN
DELETE
las solicitudes deben someterse a pruebas exhaustivas, ya que generalmente eliminan datos de una base de datos. Tenga cuidado al probar métodos de ELIMINACIÓN, asegúrese de usar las credenciales correctas y no hacer pruebas con datos de usuario real.
Un caso de prueba típico para una solicitud de ELIMINACIÓN se vería así:
- Crear un nuevo usuario con un
POST
solicitud/users
- Con el id de usuario devuelve desde el
POST
, hacer unDELETE
solicitud/users/{{userid}}
- Una posterior
GET
solicitud/users/{{userid}}
debe devolver un mensaje de error 404 no se encuentra el código de estado.
Además, el envío de una solicitud de ELIMINACIÓN a un recurso desconocido debe devolver un código de estado distinto de 200.
HEAD
El método HEAD
es casi idéntico a GET
, excepto sin el cuerpo de respuesta. En otras palabras, si GET /users
devuelve una lista de usuarios, entonces HEAD /users
hará la misma solicitud pero no recuperará la lista de usuarios.
Las peticiones HEAD son útiles para comprobar qué devolverá una petición GET antes de hacer una petición GET actually como antes de descargar un archivo grande o responsebody. Obtén más información sobre las solicitudes HEAD en MDN.
Vale la pena señalar que no todos los endpoints compatibles con Get admitirán HEAD: depende completamente de la API que esté probando.
Probar una API con solicitudes HEAD
Realizar solicitudes de API con métodos HEAD
es en realidad una forma efectiva de simplemente verificar que un recurso está disponible. Es una buena práctica tener una prueba para solicitudes HEAD en todas partes donde tenga una prueba para solicitudes GET (siempre y cuando la API lo admita).
Compruebe estas cosas al probar una API con peticiones HEAD:
- Verificar y chequear los encabezados PTTP devueltos desde una solicitud HEAD
- Hacer aserciones contra el código de estado de las solicitudes HEAD
- Probar solicitudes con varios parámetros de consulta r para garantizar que APIresponds
Otro caso útil para HEAD
requestsisAPI prueba de humo: haga una solicitud HEAD contra cada extremo de la API para asegurarse de que estén disponibles.
OPCIONES
Por último, pero no menos importante, tenemos solicitudes OPTIONS
. Las solicitudes de opciones son una de mis favoritas, aunque no se usan tan ampliamente como los otros métodos HTTP. En pocas palabras, una solicitud de OPCIONES debe devolver datos describiendo qué otros métodos y operaciones admite el servidor en la URL dada.Las solicitudes de OPCIONES
se definen y usan de forma más flexible que las demás,lo que las convierte en un buen candidato para probar errores fatales de API. Si anAPI no espera una solicitud de OPCIONES, es bueno colocar una caseína de prueba que verifique el comportamiento fallido.
Probar una API con solicitudes de OPCIONES
Probar una solicitud OPTIONS
depende del servicio web; sea o no compatible con eso y lo que se supone que debe devolver definirá cómo debe probarlo.
Cómo validar un punto final mediante OPCIONES:
- Principalmente, compruebe los encabezados de respuesta y el código de estado de la solicitud
- Probar puntos finales que no admiten OPCIONES y asegúrese de que fallan adecuadamente
Más recursos
Lo que he comentado anteriormente es solo un punto de partida para analizar métodos toHTTP y probar varios recursos de una API. También supone un caso ideal en su mayoría: en el mundo real, las API no están tan estructuradas como los ejemplos anteriores. Esto hace que probar varios métodos contra un APIan sea una forma efectiva de encontrar errores inesperados.