0

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

null
    • BugTrapper
    • vor 5 Jahren
    • Gemeldet - anzeigen

    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."

    • UweG
    • vor 5 Jahren
    • Gemeldet - anzeigen

    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. 

    • BugTrapper
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hab ich ehrlich gesagt nur geraten :-)

    • UweG
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Spiel Lotto .-)

Content aside

  • vor 5 JahrenZuletzt aktiv
  • 4Antworten
  • 1891Ansichten