API POST- und PUT-Methode
Hallo
Ich möchte über die API in einen vorhandenen Datensatz einer anderen Tabelle den Feldwert ändern.
Das habe ich bisher mit der POST-Methode in der Form:
POST https://api.ninoxdb.de/v1/teams/TEAMID/databases/DATABASEID/tables/A/records{"Authorization":"Bearer API-Key","content-type":"application/json"}{"id":274,"fields":{"Preis":222}}
gemacht und es funktioniert einwandfrei.
Nun möchte ich statt der POST Methode die PUT Metode nutzen, welche ja für Änderungen geschaffen wurde, während die POST-Methode hauptsächlich für die Neuerstellung gebutzt wird .
Ich habe nun POST nur durch PUT ersetzt, was ja eigentlich in diesem Fall die gleiche Funktionalität haben soll. (In einem vorhandenem Datensatz einen Feldwert ändern)
PUT https://api.ninoxdb.de/v1/teams/TEAMID/databases/DATABASEID/tables/A/records{"Authorization":"Bearer API-Key","content-type":"application/json"}{"id":274,"fields":{"Preis":222}}
Nur hier bekomme ich die Fehlermeldung: {"result":"End-point not found"}
Wieso findet er bei der PUT-Methode den Datensatz nicht, wärend es bei der POST-Methode funktioniert?
Zur PUT-Methode habe ich leider nichts in der Dokumentation gefunden.
Für eine Erklärung des Fehlers in meinem Denkmuster wäre ich dankbar.
Vielen Dank vorab.
Gruss Uwe
4 Antworten
-
Noch nie gemacht, vielleicht ist der Endpoint wirklich falsch, da meistens bei der PUT-Methode noch die ID angehängt wird, vielleicht Fehler im Handbuch ?
"
To give examples of REST-style resources:
"POST /books" with a bunch of book information might create a new book, and respond with the new URL identifying that book: "/books/5".
"PUT /books/5" would have to either create a new book with the id of 5, or replace the existing book with ID 5.
In non-resource style, POST can be used for just about anything that has a side effect. One other difference is that PUT should be idempotent - multiple PUTs of the same data to the same URL should be fine, wheras multiple POSTs might create multiple objects or whatever it is your POST action does."
-
Hallo BugTrapper.
Der Hinweis hat geholfen.
Bei der PUT-Methode muss die ID des Records im Endpoint stehen.
Der Aufruf sieht dann wie folgt aus:
PUT https://api.ninoxdb.de/v1/teams/TEAMID/databases/DATABASEID/tables/A/records/274{"Authorization":"Bearer API-Key","content-type":"application/json"}{"fields":{"Preis":222}}
Im Body kann die id des zu ändernden Records dann weggelassen werden.
Merkwürdigerweise funktioniert es in der POST-Methode ohne die Record-ID im Endpoint und mit Record-ID im Body.(siehe obige Schreibweise bei POST)
Man lernt immer Wieder dazu.
-
Hab ich ehrlich gesagt nur geraten :-)
-
Spiel Lotto .-)
Content aside
- vor 5 JahrenZuletzt aktiv
- 4Antworten
- 1891Ansichten