¿Cuál es la diferencia entre los métodos PUT, POST y PATCH en el protocolo HTTP?
¿Cuál es la diferencia entre los métodos PUT, POST y PATCH en el protocolo HTTP?
Respuestas:
Diferencia entre PUT, POST, GET, DELETE y PATCH IN HTTP Verbs:
Los verbos HTTP más utilizados POST, GET, PUT, DELETE son similares a las operaciones CRUD (Crear, Leer, Actualizar y Eliminar) en la base de datos. Especificamos estos verbos HTTP en mayúsculas . Entonces, la siguiente es la comparación entre ellos.
PARCHE: envía una modificación parcial a un recurso. Si solo necesita actualizar un campo para el recurso, puede utilizar el método PATCH.
Nota:
Dado que POST, PUT, DELETE modifica el contenido, las pruebas con Fiddler para la siguiente URL solo imitan las actualizaciones. No elimina o modifica en realidad. Solo podemos ver los códigos de estado para verificar si se producen inserciones, actualizaciones o eliminaciones.
URL: http://jsonplaceholder.typicode.com/posts/
1) OBTENER:
GET es el tipo más simple de método de solicitud HTTP; el que usan los navegadores cada vez que haces clic en un enlace o escribes una URL en la barra de direcciones. Le indica al servidor que transmita los datos identificados por la URL al cliente. Los datos nunca deben modificarse en el lado del servidor como resultado de una solicitud GET. En este sentido, una solicitud GET es de solo lectura.
Verificación con Fiddler o PostMan: podemos usar Fiddler para verificar la respuesta. Abra Fiddler y seleccione la pestaña Componer. Especifique el verbo y la url como se muestra a continuación y haga clic en Ejecutar para verificar la respuesta.
Verbo: OBTENER
url: http://jsonplaceholder.typicode.com/posts/
Respuesta: Obtendrá la respuesta como:
"userId": 1, "id": 1, "title": "sunt aut ...", "body": "quia et suscipit ..."
En la ruta "feliz" (o sin errores), GET devuelve una representación en XML o JSON y un código de respuesta HTTP de 200 (OK). En un caso de error, a menudo devuelve un 404 (NO ENCONTRADO) o 400 (SOLICITUD MALA).
2) POST:
El verbo POST se utiliza principalmente para crear nuevos recursos. En particular, se usa para crear recursos subordinados. Es decir, subordinado a algún otro recurso (por ejemplo, padre).
En la creación exitosa, devuelva el estado HTTP 201, devolviendo un encabezado de ubicación con un enlace al recurso recién creado con el estado HTTP 201.
Verificación con Fiddler o PostMan: podemos usar Fiddler para verificar la respuesta. Abra Fiddler y seleccione la pestaña Componer. Especifique el verbo y la url como se muestra a continuación y haga clic en Ejecutar para verificar la respuesta.
Verbo: POST
url: http://jsonplaceholder.typicode.com/posts/
Cuerpo de solicitud:
data: {title: 'foo', body: 'bar', userId: 1000, Id: 1000}
Respuesta: Recibiría el código de respuesta como 201.
Si queremos verificar el registro insertado con Id = 1000, cambie el verbo Obtener y use la misma url y haga clic en Ejecutar.
Como se dijo anteriormente, la url anterior solo permite lecturas (GET), no podemos leer los datos actualizados en real.
3) PONER:
PUT se utiliza con mayor frecuencia para capacidades de actualización , PUT -ING a un URI de recurso conocido con el cuerpo de solicitud que contiene la representación recientemente actualizada del recurso original.
Verificación con Fiddler o PostMan: podemos usar Fiddler para verificar la respuesta. Abra Fiddler y seleccione la pestaña Componer. Especifique el verbo y la url como se muestra a continuación y haga clic en Ejecutar para verificar la respuesta.
Verbo: PONER
url: http://jsonplaceholder.typicode.com/posts/1
Cuerpo de solicitud:
data: {title: 'foo', body: 'bar', userId: 1, Id: 1}
Respuesta: En una actualización exitosa, devuelve 200 (o 204 si no devuelve ningún contenido en el cuerpo) de un PUT.
4) BORRAR:
ELIMINAR es bastante fácil de entender. Se utiliza para eliminar un recurso identificado por un URI.
En caso de eliminación exitosa, devuelva el estado HTTP 200 (OK) junto con un cuerpo de respuesta, tal vez la representación del elemento eliminado (a menudo exige demasiado ancho de banda) o una respuesta envuelta (consulte Valores de retorno a continuación). O eso o devolver el estado HTTP 204 (SIN CONTENIDO) sin cuerpo de respuesta. En otras palabras, un estado 204 sin cuerpo, o la respuesta de estilo JSEND y el estado HTTP 200 son las respuestas recomendadas.
Verificación con Fiddler o PostMan: podemos usar Fiddler para verificar la respuesta. Abra Fiddler y seleccione la pestaña Componer. Especifique el verbo y la url como se muestra a continuación y haga clic en Ejecutar para verificar la respuesta.
Verbo: BORRAR
url: http://jsonplaceholder.typicode.com/posts/1
Respuesta: Al eliminar con éxito, devuelve el estado HTTP 200 (OK) junto con un cuerpo de respuesta.
Ejemplo entre PUT y PATCH
PONER
Si tuviera que cambiar mi nombre, envíe la solicitud PUT para actualización:
{"first": "Nazmul", "last": "hasan"} Entonces, aquí para actualizar el nombre necesitamos enviar todos los parámetros de los datos nuevamente.
PARCHE:
La solicitud de parche dice que solo enviaríamos los datos que necesitamos modificar sin modificar o afectar otras partes de los datos. Ej: si necesitamos actualizar solo el primer nombre, solo pasamos el primer nombre.
Consulte los enlaces a continuación para obtener más información:
https://jsonplaceholder.typicode.com/
https://github.com/typicode/jsonplaceholder#how-to
PUT = reemplazar TODO EL RECURSO con la nueva representación proporcionada
PATCH = reemplazar partes del recurso fuente con los valores proporcionados AND | OR otras partes del recurso se actualizan que no ha proporcionado (marcas de tiempo) AND | OR actualizar el recurso afecta a otros recursos (relaciones)
La siguiente definición es del ejemplo del mundo real.
Descripción general del ejemplo
Para cada dato de cliente, estamos almacenando un identificador para encontrar los datos de ese cliente y enviaremos ese identificador a ese cliente para referencia.
ENVIAR
PONER
PARCHE
Nota: En el Método Put , no estamos lanzando una excepción si no se encuentra un identificador. Pero en el método Patch , estamos lanzando una excepción si no se encuentra el identificador.
Avíseme si tiene alguna consulta sobre lo anterior.
GET / PUT es idempotente PARCHE puede ser a veces idempotente
Lo que es idempotente: significa que si disparamos la consulta varias veces, no debería afectar el resultado de la misma (mismo resultado. Supongamos que una vaca está preñada y si la criamos de nuevo, no se puede embarazar varias veces)
get
: -simple obtener. Obtenga los datos del servidor y muéstrelos al usuario
{
id:1
name:parth
email:x@x.com
}
post
: -crear un nuevo recurso en la base de datos. Significa que agrega nuevos datos. No es idempotente.
put
: -Cree un nuevo recurso, de lo contrario, agréguelo a los existentes. Idempotente porque actualizará el mismo recurso cada vez y la salida será la misma. ex. - datos iniciales
{
id:1
name:parth
email:x@x.com
}
{
id:1
email:ppp@ppp.com
}
patch
así que ahora llegó la solicitud de parche PATCH puede ser a veces idempotente
id:1
name:parth
email:x@x.com
}
nombre del parche: w
{
id:1
name:w
email:x@x.com
}
Método HTTP OBTENER SI Publicar no PONER sí PARCHE no * OPCIONES si CABEZA si BORRAR sí
Recursos: Idempotente - ¿Qué es la idempotencia?
Diferencia principal entre las solicitudes PUT y PATCH :
Supongamos que tenemos un recurso que contiene el nombre y el apellido de una persona.
Si queremos cambiar el nombre, enviamos una solicitud de actualización.
{ "first": "Michael", "last": "Angelo" }
Aquí, aunque solo estamos cambiando el nombre, con la solicitud PUT tenemos que enviar ambos parámetros primero y último.
En otras palabras, es obligatorio enviar todos los valores nuevamente, la carga útil completa.
Sin embargo, cuando enviamos una solicitud PATCH, solo enviamos los datos que queremos actualizar. En otras palabras, solo enviamos el nombre para actualizar, no es necesario enviar el apellido.
Es bastante lógica la diferencia entre PUT y PATCH wrt enviando datos completos y parciales para reemplazar / actualizar respectivamente. Sin embargo, solo un par de puntos como a continuación
Piénsalo de esta manera...
POST - crear
PUT - reemplazar
PARCHE - actualización
OBTENER - leer
BORRAR - borrar
La explicación más simple:
POST - Crear NUEVO registro
PUT: si el registro existe, actualice más, cree un nuevo registro
PARCHE - actualización
OBTENER - leer
BORRAR - borrar