• Last edited on: 03 February 2022

API-Rückgabeformate

Verwenden Sie das flache API-Format von Coupa, um die Datenmenge zu reduzieren, die Sie während einer Abfrage erhalten.

Hinweis

Coupa bietet jetzt erweiterte API-Filter um eine bestimmte Ausgabe zu definieren. Wir empfehlen, diese Filter anstelle des flachen Formats zu verwenden, das in einer zukünftigen Version veraltet sein wird.

Ü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ückgabenutzlasten können sehr groß und daher langsam sein. Dies kann ein Problem für Kunden sein, welche die irrelevanten Daten nicht benötigen, ganz zu schweigen von dem unnötigen Ressourcenverbrauch.

Um die Sache zu vereinfachen, hat Coupa ein Rückgabeformat return_object=shallow die eine begrenzte JSON- oder XML-Antwort anstelle des gesamten Schemas und aller Zuordnungen für ein Objekt zurückgibt. Das Konzept der optionalen Angabe eines return_object ist nicht neu, nur das Konzept des "flachen" 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 jetzt die folgenden 3 Werte:

  • none : Nichts wird zurückgegeben. Dies wird nur für PUT und POST unterstützt (keine Abfragen wie GET, wo es keinen Sinn ergibt).
  • limited : Es werden nur IDs zurückgegeben. Dies wird für alle Befehle unterstützt.
  • shallow : Dieser Parameter gibt alle Attribute/Felder des aufgerufenen Objekts zurück und nur die IDs und natürlichen Schlüssel der eintiefen Verknüpfungen.

Der Parameter return_object=shallow wird für Folgendes unterstützt:

  • POST-Befehle
  • PUT-Befehle
  • GET-Befehle

Die fields Mit dem Abfrageoperator können Sie die gewünschten Felder im Antworttext übergeben. Das Format von fields ist JSON. Siehe Beispiel unten:

?fields=["id","invoice_number",{"invoice_lines":["id","line_num"]}]

Objekt zurückgeben

Sie können return_object param, um das Antworttextformat bei allen grundlegenden Erstellungs-, Aktualisierungs- oder Abfrageaufrufen zu steuern.

Beim Erstellen und Aktualisieren werden die Werte return_object unterstützt: none, limited und shallow.

Bei Abfrageaufrufen werden folgende Werte unterstützt: begrenzt und flach.

Beispiel: Eingeschränkte Antwort auf Abfrage

Query:  https://example.coupahost.com/api/expense_reports?return_object=limited
Response Code:  200
Response Body:
{“id”:1}

Beispiel: Keine Antwort bei Erstellung

POST:  https://example.coupahost.com/api/ex...rn_object=none
Request Body:
{
 "id":2,
 "currency":{
   "code":"USD"
 },
 "expense-lines":[
   {
     "description":"Airfare to Reno",
     "merchant":"American Airlines",
     "reason":"",
     "amount":"255.0",
     "expense-date":"2010-02-05T00:00:00-08:00",
     "start-date":"2010-02-05T00:00:00-08:00",
     "expense-category":{
       "name":"Airfare",
     }
   },
 ],
}
Response Code:  200
Response Body:

Beispiel: flache Antwort bei Erstellung

Query:  https://example.coupahost.com/api/ex...object=shallow
Response Code:  200
Response Body:
{
 "id":158,
 "created-at":"2010-09-22T20:42:57-07:00",
 "updated-at":"2014-04-24T14:56:49-07:00",
 "title":"",
 "status":"pending_approval",
 "submitted-at":"2014-04-24T14:56:49-07:00",
 "auditor-note":null,
 "reject-reason":null,
 "paid":false,
 "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":[ ]
}

Parts or all of this page might have been machine-translated. We apologize for any inaccuracies.

  • Table Of Contents