http - respuestas - ¿Cuál es la diferencia entre PUT, POST y PATCH?
que es http request (6)
ENVIAR
HTTP.POST
se puede usar cuando el cliente envía datos al servidor y el servidor decidirá el URI para el recurso recién creado.
El método POST se utiliza para solicitar que el servidor de origen acepte la entidad incluida en la solicitud como un nuevo subordinado del recurso identificado por el URI de solicitud en la línea de solicitud.
PONER
HTTP.PUT
se puede usar cuando el cliente envía datos al servidor y el cliente determina el URI para el recurso recién creado.
El método PUT solicita que la entidad adjunta se almacene bajo el URI de solicitud proporcionado.
Si el URI de solicitud se refiere a un recurso ya existente, la entidad adjunta DEBE considerarse como una versión modificada de la que reside en el servidor de origen.
Si el URI de solicitud no apunta a un recurso existente, y ese URI es capaz de ser definido como un nuevo recurso por el agente de usuario solicitante, el servidor de origen puede crear el recurso con ese URI.
PARCHE
HTTP.PATCH
se puede usar cuando el cliente envía uno o más cambios para que el servidor los aplique.
El método PATCH solicita que se aplique un conjunto de cambios descritos en la entidad de solicitud al recurso identificado por el URI de solicitud.
El conjunto de cambios se representa en un formato llamado documento de parche.
Para obtener más información, consulte la URL mencionada a continuación
¿Cuál es la diferencia entre los métodos PUT, POST y PATCH en el protocolo HTTP?
Tipos de solicitud
- crear - PUBLICAR
- leer - OBTENER
- crear o actualizar - PONER
- eliminar - BORRAR
- actualización - PARCHE
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:[email protected]
}
post
: -
crear un nuevo recurso en la base de datos. Significa que agrega nuevos datos. No es idempotente.
put
: -
Crear un nuevo recurso, de lo contrario, agregar al existente. Idempotente porque actualizará el mismo recurso cada vez y la salida será la misma. ex. - datos iniciales
{
id:1
name:parth
email:[email protected]
}
- ejecutar put-localhost / 1 put correo electrónico: [email protected]
{
id:1
email:[email protected]
}
patch
así que ahora llegó la solicitud de parche PATCH puede ser a veces idempotente
id:1
name:parth
email:[email protected]
}
nombre del parche: w
{
id:1
name:w
email:[email protected]
}
HTTP Method GET yes POST no PUT yes PATCH no* OPTIONS yes HEAD yes DELETE yes
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.
La siguiente definición es del ejemplo del mundo real.
Resumen de ejemplo
Para cada dato de cliente, estamos almacenando un identificador para encontrar esos datos de cliente y enviaremos ese identificador a ese cliente para referencia.
-
ENVIAR
- Si el Cliente envía datos sin ningún identificador utilizando el método POST, los almacenaremos y le asignaremos un nuevo identificador.
- Si el Cliente vuelve a enviar los mismos datos sin ningún identificador utilizando el método POST, los almacenaremos y le asignaremos un nuevo identificador.
- Nota : la duplicación está permitida aquí
-
PONER
- Si el cliente envía datos con un identificador, verificaremos si ese identificador existe. Si el identificador existe, actualizaremos los datos; de lo contrario, lo crearemos y asignaremos un nuevo identificador.
-
PARCHE
- Si el cliente envía datos con un identificador, verificaremos si ese identificador existe. Si el identificador existe, actualizaremos los datos; de lo contrario, lanzaremos una excepción.
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.
PUT = reemplazar TODO EL RECURSO con la nueva representación proporcionada
PATCH = reemplazar partes del recurso fuente con los valores proporcionados Y | O se actualizan otras partes del recurso que no ha proporcionado (marcas de tiempo) Y | O actualizar el recurso afecta a otros recursos (relaciones)
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.
- crear - PUBLICAR
- leer - OBTENER
- actualización - PUT
- eliminar - BORRAR
PARCHE: envía una modificación parcial a un recurso. Si solo necesita actualizar un campo para el recurso, puede usar 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 se elimina ni 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 error), 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 201 HTTP.
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 enviaremos 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