API Rückgabeformate
Verwenden Sie das flache API-Format von Coupa, um die Datenmenge zu reduzieren, die Sie während einer Abfrage erhalten.
Coupa bietet jetzt erweiterte API-Filter, mit denen Sie eine bestimmte Ausgabe definieren können. Wir empfehlen, diese Filter anstelle des flachen Formats zu verwenden, das in zukünftigen Versionen nicht mehr verfügbar ist.
Übersicht
Die API von Coupa gibt standardmäßig viele Daten zurück (z. B. vollständige Objekte für zugehörige Objekte). Die API-Rückgabe-Nutzlasten können sehr groß und daher langsam sein. Dies kann ein Problem für Kunden sein, die die Fremddaten nicht benötigen, ganz zu schweigen vom unnötigen Ressourcenverbrauch.
Um die Dinge zu vereinfachen, hat Coupa ein Rückgabeformat return_object=shallow
, das eine begrenzte JSON- oder XML-Antwort anstelle des gesamten Schemas und aller Zuordnungen für ein Objekt zurückgibt. Das Konzept, optional ein return_object anzugeben, ist nicht neu, nur das Konzept des „shallow“ -Formats. Wenn kein return_object angegeben ist, wird der vollständige Rückgabewert zurückgegeben.
So funktioniert es
Der optionale Abfrageparameter return_object unterstützt
nun die folgenden 3 Werte:
-
keine
: Es wird nichts zurückgegeben. Dies wird nur für PUT und POST unterstützt (keine Abfragen, wie GET, wo es keinen Sinn macht). -
begrenzt
: Es werden nur IDs zurückgegeben. Dies wird für alle Befehle unterstützt. -
flach
: Dieser Parameter gibt alle Attribute/Felder des aufgerufenen Objekts und nur die IDs und natürlichen Schlüssel der eintiefen Assoziationen zurück.
Der Parameter return_object=shallow
wird für Folgendes unterstützt:
- Befehle VERÖFFENTLICHEN
- Put-Befehle
- Befehle ABRUFEN
Mit dem Feldabfrageoperator
können Sie die gewünschten Felder im Antworttext übergeben. Das Format des
Feldwerts ist json. Bitte beachten Sie das folgende Beispiel:
?fields=["id","invoice_number",{"invoice_lines":["id","line_num"]}]
Rückgabeobjekt
Sie können den Parameter return_object verwenden, um das Antworttextformat für alle grundlegenden Erstellungs-, Aktualisierungs- oder Abfrageaufrufe zu steuern.
Beim Erstellen und Aktualisieren von return_object werden folgende Werte unterstützt: none, limited und shallow.
Bei Abfrageaufrufen werden folgende Werte unterstützt: begrenzt und flach.
Beispiel: Begrenzte Antwort auf Anfrage
Frage: https://example.coupahost.com/api/expense_reports?return_object=limited Antwortcode: 200 Hauptteil der Antwort: {“id”:1}
Beispiel: Keine Antwort beim Erstellen
BEITRAG: https://example.coupahost.com/api/ex...rn_object=none Anforderungstext: { "id":2, "currency":{ "code":"USD" }, "Expense-Lines":[ { "description":"Flug nach Reno", "merchant":"American Airlines", "reason":"", "amount":"255,0", "Expense-Datum":"2010-02-05T00:00:00-08:00", "start-date":"2010-02-05T 00:00:00-08:00 Uhr", "expense-category":{ "name":"Flugpreis", } }, ], } Antwortcode: 200 Antworttext:
Beispiel: flache Antwort beim Erstellen
Abfrage: https://example.coupahost.com/api/ex...object=shallow Antwortcode: 200 Antworttext: { "id":158, "created-at":"2010-09-22T20:42:57-07:00", "updated-at":"2014-04-24T14:56:49-07:00", "title":"", "status":"ausstehende_Genehmigung", "submitted-at":"2014-04-24T14:56:49-07:00", "auditor-note":null, "reject-reason":null, "Paid":falsch, "total":"567,07", "audit-score":26, "exported":false, "last-exported-at":Null, "external-src-ref":Null, "external-src-name":Null, "currency":{ "id":1, "code":"USD" }, "expensed-by":{ "id":20, "login":"user_login", "email":"user_login@coupa.com" }, "created-by":{ "id":20, "login":"user_login", "email":"user_login@coupa.com" }, "updated-by":{ "id":20, "login":"user_login", "email":"user_login@coupa.com" }, "Expense-Lines":[ { "id":546, "external-src-ref":Null }, { "id":547, "external-src-ref":Null }, { "id":548, "external-src-ref":Null }, { "id":549, "external-src-ref":Null } ], "comments":[ ] }