kzen.dev
  • Frågor
  • Taggar
  • Användare
Meddelanden
Belöningar
Registrering
När du har registrerat dig kommer du att få information om svar och kommentarer på dina frågor.
Logga in
Om du redan har ett konto loggar du in för att kontrollera nya meddelanden.
Det kommer att finnas belöningar för frågor, svar och kommentarer.
Mer
Källa
Redigera
 alex
alex
Question

PUT kontra POST i REST

Enligt HTTP/1.1-specifikationen:

Metoden POST används för att begära att ursprungsservern ska acceptera den enhet som ingår i begäran som en ny underordnad till den resurs som identifieras av Request-URI i Request-Line.

Med andra ord används POST för att skapa.

Metoden PUT begär att den bifogade enheten lagras under den angivna Request-URI. Om Request-URI hänvisar till en redan existerande resurs, bör den bifogade enheten betraktas som en modifierad version av den som finns på ursprungsservern. Om Request-URI inte pekar på en befintlig resurs, och den URI:n kan definieras som en ny resurs av den begärande användaragenten, kan ursprungsservern skapa resursen med den URI:n."

Det betyder att PUT används för att skapa eller uppdatera.

Så vilken ska användas för att skapa en resurs? Eller måste man ha stöd för båda?

5202 2009-03-10T14:25:20+00:00 3
Peter Mortensen
Peter Mortensen
Redigerad fråga 2017ör juli 2017 в 11:39
Programmering
rest
http
post
put
Popular videos
HTTP GET PUT POST DELETE
HTTP GET PUT POST DELETE
för 7 år sedan
REST API concepts and examples
REST API concepts and examples
för 9 år sedan
Differences Between Get and Post - Web Development
Differences Between Get and Post - Web Development
för 11 år sedan
When to use HTTP GET vs POST?
When to use HTTP GET vs POST?
för 4 år sedan
SL 20: PUT vs POST vs PATCH
SL 20: PUT vs POST vs PATCH
för 5 år sedan
Postman Tutorial 4 - Difference between POST, PUT and PATCH Method
Postman Tutorial 4 - Difference between POST, PUT and PATCH Method
för 3 år sedan
Http Methods
Http Methods
för 4 år sedan
Post vs Put
Post vs Put
för 5 år sedan
Step by Step Tutorial: POSTing to a REST API using c# Windows Client
Step by Step Tutorial: POSTing to a REST API using c# Windows Client
för 6 år sedan
PUT/PATCH REST APIs - All you need to know about why and where to use Put vs Patch
PUT/PATCH REST APIs - All you need to know about why and where to use Put vs Patch
för 2 år sedan
Put Vs Patch Rest Api - Main Differences And Use Cases
Put Vs Patch Rest Api - Main Differences And Use Cases
för 3 år sedan
5  PUT Vs PATCH
5 PUT Vs PATCH
för 3 år sedan
REST Web Services 06 - Method Idempotence
REST Web Services 06 - Method Idempotence
för 8 år sedan
How to Perform Post, Delete, Put Method in Rest Assured- API Testing-
How to Perform Post, Delete, Put Method in Rest Assured- API Testing-
för 5 år sedan
POST vs PUT vs PATCH in Hindi | Http Methods in Rest Api
POST vs PUT vs PATCH in Hindi | Http Methods in Rest Api
för 2 år sedan
6. PUT Vs POST, Why POST is NOT Idempotent
6. PUT Vs POST, Why POST is NOT Idempotent
för 3 år sedan
REST API Series | Tutorial 7: HTTP Methods - GET, POST, PUT, DELETE, HEAD, OPTIONS, PATCH
REST API Series | Tutorial 7: HTTP Methods - GET, POST, PUT, DELETE, HEAD, OPTIONS, PATCH
för 3 år sedan
HTTP Methods GET POST PUT PATCH DELETE | SoftwaretestingbyMKT
HTTP Methods GET POST PUT PATCH DELETE | SoftwaretestingbyMKT
för 3 år sedan
REST Assured API testing Beginner Tutorial | Part 2 - How to test GET POST PUT PATCH and DELETE
REST Assured API testing Beginner Tutorial | Part 2 - How to test GET POST PUT PATCH and DELETE
för 3 år sedan
HTTP Methods - GET vs POST Method | Complete explanation [in Hindi]
HTTP Methods - GET vs POST Method | Complete explanation [in Hindi]
för 3 år sedan
REST API - HTTP Request Methods
REST API - HTTP Request Methods
för 5 år sedan
PUT vs POST in REST
PUT vs POST in REST
för 9 år sedan
REST Web Services 19 - Implementing POST Method
REST Web Services 19 - Implementing POST Method
för 8 år sedan
Compare the Put vs Post Method | HTTP and REST API Interview Q&A | Under 60 Seconds
Compare the Put vs Post Method | HTTP and REST API Interview Q&A | Under 60 Seconds
för 3 år sedan
GET, UPDATE, POST, DELETE - Function Views (Django REST framework)
GET, UPDATE, POST, DELETE - Function Views (Django REST framework)
för 4 år sedan
Django Rest API CRUD - GET, POST, PUT and DELETE
Django Rest API CRUD - GET, POST, PUT and DELETE
för 4 år sedan
2009 Chevy Malibu vs 1959 Bel Air Crash Test | Consumer Reports
2009 Chevy Malibu vs 1959 Bel Air Crash Test | Consumer Reports
för 14 år sedan
Revealing Her Secrets
Revealing Her Secrets
för 1 år sedan
What is a REST API?
What is a REST API?
för 3 år sedan
FBI Kicked Us Out of our House... Lie Detector Test vs Spy Ninjas for 24 Hours
FBI Kicked Us Out of our House... Lie Detector Test vs Spy Ninjas for 24 Hours
för 2 år sedan
WHO CAN DO THE MOST DARES IN 24 HOURS.. Boys VS Girls
WHO CAN DO THE MOST DARES IN 24 HOURS.. Boys VS Girls
för 1 år sedan
How to Set Up and Integrate Rest APIs in NetSuite
How to Set Up and Integrate Rest APIs in NetSuite
för 3 år sedan
The REAL Reason Putin is Preparing for War in Ukraine
The REAL Reason Putin is Preparing for War in Ukraine
för 1 år sedan
WHO'S THE IMPOSTER
WHO'S THE IMPOSTER
för 1 år sedan
Busting PZ9 with a Bat & Alie with a Lie Detector Test
Busting PZ9 with a Bat & Alie with a Lie Detector Test
för 1 år sedan
REST Client POST & PATCH
REST Client POST & PATCH
för 7 år sedan
Kids Become Parents For A Day (very funny!)
Kids Become Parents For A Day (very funny!)
för 1 år sedan
NERD Throws PARTY Behind Parents' Back PART 1 | Dhar Mann
NERD Throws PARTY Behind Parents' Back PART 1 | Dhar Mann
för 1 år sedan
« Föregående
Nästa »
Den här frågan har 1 svar på engelska, för att läsa dem logga in på ditt konto.
Solution / Answer
Brian  R. Bondy
Brian R. Bondy
2009ör mars 2009 в 2:29
2009-03-10T14:29:46+00:00
Mer
Källa
Redigera
#8886078

Sammantaget:

Både PUT och POST kan användas för att skapa.

Du måste fråga dig "vad utför du åtgärden på?" för att avgöra vad du ska använda. Låt oss anta att du utformar ett API för att ställa frågor. Om du vill använda POST skulle du göra det på en lista med frågor. Om du vill använda PUT skulle du göra det för en viss fråga.

Båda kan användas, så vilken ska jag använda i min RESTful-design:

Du behöver inte ha stöd för både PUT och POST.

Vilket som används är upp till dig. Men kom ihåg att använda rätt beroende på vilket objekt du hänvisar till i begäran.

Några överväganden:

  • Namnger du dina URL-objekt som du skapar uttryckligen eller låter du servern bestämma? Om du namnger dem använder du PUT. Om du låter servern bestämma använder du POST.
  • PUT är idempotent, så om du PUTar ett objekt två gånger har det ingen effekt. Detta är en trevlig egenskap, så jag skulle använda PUT när det är möjligt.
  • Du kan uppdatera eller skapa en resurs med PUT med samma objekt-URL.
  • Med POST kan du ha två förfrågningar som kommer in samtidigt och gör ändringar i en URL, och de kan uppdatera olika delar av objektet.

Ett exempel:

Jag skrev följande som en del av ett annat svar på SO om detta:

POST:

Används för att ändra och uppdatera en resurs

POST /questions/ HTTP/1.1 Värd: www.example.com/

Observera att följande är ett fel:

POST /questions/ HTTP/1.1 Värd: www.example.com/

Om webbadressen ännu inte har skapats kan du bör du inte använda POST för att skapa den. när du anger namnet. Detta bör resultera i ett 'resource not found' fel. eftersom <new_question> inte finns. inte finns ännu. Du bör PUTA in <new_question>. resursen på servern först.

Du kan dock göra något liknande som så här för att skapa en resurs med POST:

POST /questions HTTP/1.1 Värd: www.example.com/

Observera att i detta fall är resursen namn inte anges, de nya objekten URL-sökvägen returneras till dig.

PUT:

Används för att skapa en resurs, eller skriva över den. Medan du anger resursens nya URL.

För en ny resurs:

PUT /questions/ HTTP/1.1 Värd: www.example.com/

För att skriva över en befintlig resurs:

PUT /questions/ HTTP/1.1 Värd: www.example.com/

 Community
Community
Redigerat svar 2017ör maj 2017 в 11:55
4103
0
Do you have a question? Add it on the site and get an answer instantly
en.kzen.dev
Tim Sullivan
Tim Sullivan
2009ör mars 2009 в 2:28
2009-03-10T14:28:57+00:00
Mer
Källa
Redigera
#8886077

Använd POST för att skapa och PUT för att uppdatera. Det är i alla fall så Ruby on Rails gör det.

PUT    /items/1      #=> update
POST   /items        #=> create
Peter Mortensen
Peter Mortensen
Redigerat svar 2017ör september 2017 в 8:17
124
0
Do you have a question? Add it on the site and get an answer instantly
en.kzen.dev
J&#246;rg  W Mittag
Jörg W Mittag
2009ör mars 2009 в 3:27
2009-03-10T15:27:52+00:00
Mer
Källa
Redigera
#8886079

REST är ett koncept på mycket hög nivå. Faktum är att det inte ens nämns HTTP överhuvudtaget!

Om du är osäker på hur man implementerar REST i HTTP kan du alltid ta en titt på [Atom Publication Protocol (AtomPub)][1] specifikationen. AtomPub är en standard för att skriva RESTful-webbtjänster med HTTP som utvecklades av många HTTP- och REST-koryféer, med viss input från Roy Fielding, REST:s uppfinnare och HTTP:s (med)uppfinnare själv.

Du kanske till och med kan använda AtomPub direkt. Det är ett generiskt protokoll för REST-interaktion med godtyckliga (inbäddade) samlingar av godtyckliga resurser via HTTP. Om du kan representera din applikation som en nästlad samling resurser kan du bara använda AtomPub och inte oroa dig för om du ska använda PUT eller POST, vilka HTTP-statuskoder som ska returneras och alla dessa detaljer.

Detta är vad AtomPub har att säga om skapande av resurser (avsnitt 9.2):

För att lägga till medlemmar i en samling skickar klienter POST-förfrågningar till samlingens URI.

 Xan
Xan
Redigerat svar 2018ör juli 2018 в 2:37
65
0
Lägg till en fråga
Kategorier
Alla
Teknik
Kultur / fritid
Livet / Konst
Vetenskap
Professionell
Företag
Användare
Alla
Ny
Populära
1
Andrei Kalinin
Registrerad för 2 veckor sedan
2
Koroleva Ego
Registrerad för 1 månad sedan
3
Star Lenon
Registrerad för 1 månad sedan
4
Данил Жевнеров
Registrerad för 1 månad sedan
5
Анна Литвиненко
Registrerad för 2 månader sedan
Do you have a question? Add it on the site and get an answer instantly
en.kzen.dev
BG
DA
DE
EL
ES
FI
FR
ID
IT
JA
LT
LV
NL
NO
PL
PT
RO
RU
SL
SV
TR
ZH
© kzen.dev 2023
Källa
stackoverflow.com
under licens cc by-sa 3.0 med angivande av