AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Frage zu Rest-API-Design

Ein Thema von Der schöne Günther · begonnen am 31. Dez 2020 · letzter Beitrag vom 2. Jan 2021
Antwort Antwort
Der schöne Günther
Online

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

Frage zu Rest-API-Design

  Alt 31. Dez 2020, 18: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
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.594 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Frage zu Rest-API-Design

  Alt 31. Dez 2020, 20:15
den Unterschied zwischen PUT und PATCH hast DU ja schon richtig. Hier nochmal erklärt

https://www.predic8.de/post-put-patch-beispiel.htm

Ansonsten wären meiner Meinung nach Deine Beispiel 1 und 3 richtig
Sven Harazim
--
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#3

AW: Frage zu Rest-API-Design

  Alt 1. Jan 2021, 21:48
Ich kenne deinen API use-case nicht, aber die Frage stellt sich: Muss man alles ändern können, oder gibt es nur bestimmte Sachen die man ändern kann?

Wenn man nur bestimmte Sachen ändern können soll (lower limit, aber nicht upper limit) dann biete auch nur das an. (Also keinen Patch Endpunkt)

Nebenbei würde ich dir noch GraphQL ans Herz legen, falls das ein guter Fit ist. (Nicht einfach REST nutzen, weil das das erste Projekttemplate ist)
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.415 Beiträge
 
Delphi XE5 Professional
 
#4

AW: Frage zu Rest-API-Design

  Alt 1. Jan 2021, 21:58
Schau dir mal hateos an.


https://m.heise.de/developer/artikel...html?seite=all
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.993 Beiträge
 
Delphi 12 Athens
 
#5

AW: Frage zu Rest-API-Design

  Alt 1. Jan 2021, 23:00
Schau dir mal hateos an.
Ich dachte erst, das wäre ein neues Betriebssystem - dem allgemeinen Trend folgend
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Frage zu Rest-API-Design

  Alt 2. Jan 2021, 09:35
Was so ein „a“ nicht alles ausmachen kann
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.268 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Frage zu Rest-API-Design

  Alt 2. Jan 2021, 12:42
Mit fällt bei REST-Schnittstellen immer mehr auf, dass Swagger als Designtool verwendet wird.

Ist auf jeden Fall mal ein Blick wert.
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz