Thema: Delphi Frage zu Rest-API-Design

Einzelnen Beitrag anzeigen

Der schöne Günther

Registriert seit: 6. Mär 2013
5.742 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Frage zu Rest-API-Design

  Alt 31. Dez 2020, 19:39
Ich biete per Http GET Daten zum Auslesen an.

Für GET http://localhost/api/ bekommt man alles:
Code:
{
   "system": {
      "softwareVersion": "1.0.0",
      "localClock": "2020-12-31T19:31:00.000"
   },
   
   "control": {
      "isEnabled": true,
      "isInTurboMode": false
   },
   
   "order": {
      "orderNumber": "ABC \/ 123",
      "limits" : {
         "upper": 1.25,
         "lower": 0.8
      }
   }
}
Für GET http://localhost/api/order/limits bekommt man:
Code:
{
   "upper": 1.25,
   "lower": 0.8
}
Soweit noch ganz unspannend.

Nun möchte ich per Http PUT und Http PATCH Änderungen zulassen. Es macht hier nur Sinn bestehendes zu modifizieren, nicht etwas neues hinzuzufügen (daher kein Http POST).


Jetzt stutze ich etwas, was erwartet der typische Benutzer? Angenommen er möchte order/limits/lower ändern.

Mir fallen so viele Dinge ein die man tun könnte:
Code:
Http PATCH http://localhost/api/order/limits

{
  "lower": 0.5
}
oder

Code:
Http PATCH http://localhost/api/

{
  "order": {
    "limits": {
      "lower": 0.5
    }
  }
}
oder

Code:
Http PUT http://localhost/api/order/limits

{
   "upper": 1.25,
   "lower": 0.5
}
oder

Code:
Http PUT http://localhost/api/order/limits/lower

0.5
Was ist das üblichste? Ist das letzte überhaupt gültig?
  Mit Zitat antworten Zitat