Ich schreibe eine API in Rails, die Preise für ein Paket von mehreren Fluggesellschaften abruft. Ein Paket wird universell in Bezug auf Abmessungen, Gewicht, Adresse und Adresse beschrieben. Jeder Spediteur hätte spezifische Details (FedEx: Kontonummer, Paketoptionen; USPS: Bearbeitbarkeit, Vorsortierung; UPS: Benachrichtigungsdetails usw.). Ich entscheide immer noch, ob ich den Preis lokal speichern oder von den offiziellen APIs abrufen soll.Was ist das beste API-Design für eine nicht-einfallsreiche Route mit Verschachtelung
Meine erste Frage ist über die Preis Ressource. Ich habe einen Preis Modell, aber es erbt nicht von ActiveRecord, da ich keine Preise Tabelle habe. Ich denke, dass meine URL wie /api/v1/preise aussehen würde und es würde eine Nutzlast wie { "length" : 1.0, "address_from" : ... }
nehmen. Sollte dies ein POST oder ein GET sein? Ich vermute ein GET, da ich nicht wirklich eine Ressource erstelle, aber ich bin mir nicht sicher.
Meine zweite Frage betrifft die Nutzlast. Soll ich die trägerspezifischen Daten verschachteln? Mit anderen Worten, welcher Weg sieht korrekter aus (aus einer REST-Sicht und aus Sicht der Benutzerfreundlichkeit)? 1
Option:
{ "length" : 1.0, ..., "carrier" : { "name" : "FedEx", "account_number" : "123ABC", "package_options" : "XXX", ... } }
Option 2:
{ "length" : 1.0, ..., "carrier" : "FedEx", "fedex_account_number" : "123ABC", "fedex_package_options" : "XXX", ... }
Wenn es Option 1, sollte ich eine Art von Ressource Verschachtelung schaffen und sollte ich meine URL konstruieren ändern?
(1) ein GET (2) definitiv nicht der 2.. Ich bin verwirrt - warum speichern Sie den Preis nicht? Wenn Ihre Annahme ist, dass sich die Preise ändern und Sie immer die aktuellsten Informationen erhalten, werden Sie den Anfangspreis wollen – timpone
Nur um zu klären, werde ich die Preise speichern und ich werde nicht die API wickeln Anrufe. –