Formats de retour de l'API
Utilisez le format API peu profond de Coupa pour réduire la quantité de données que vous obtenez lors d'une requête.
Coupa propose désormais des filtres d'API plus avancés qui vous permettent de définir une sortie spécifique. Nous vous suggérons d'utiliser ces filtres au lieu du format superficiel, qui sera déprécié dans une version future.
Aperçu
L'API de Coupa renvoie beaucoup de données par défaut (par exemple : objets complets pour les objets associés). Les charges utiles de retour de l'API peuvent être très grandes et donc lentes. Cela peut être un problème pour les clients qui n'ont pas besoin des données superflues, sans parler de la consommation inutile de ressources.
Pour faciliter les choses, Coupa a un format de retour return_object=shallow
qui renvoie une réponse JSON ou XML limitée au lieu de l'ensemble du schéma et de toutes les associations pour un objet. Le concept de spécification optionnelle d'un return_object n'est pas nouveau, seul le concept du format « superficiel » est nouveau. Si aucun return_object n'est spécifié, la valeur de retour complète est renvoyée.
Comment ça marche
Le paramètre de requête optionnel return_object
prend désormais en charge les 3 valeurs suivantes :
-
aucun (e
) : Rien n'est retourné. Ceci n'est pris en charge que pour PUT et POST (pas pour les requêtes, comme GET, où cela n'a pas de sens). -
limité (e
) (s Seules les pièces d'identité sont retournées. Ceci est pris en charge pour toutes les commandes. -
peu profond
: Ce paramètre renvoie tous les attributs/champs de l'objet appelé et uniquement les ID et les clés naturelles des associations à une profondeur.
Le paramètre return_object=shallow
est pris en charge pour les éléments suivants :
- POSTER des commandes
- METTRE des commandes
- OBTENIR des commandes
L'opérateur de requête de champs
vous permet de passer les champs que vous souhaitez dans le corps de la réponse. Le format de la valeur des champs
est JSON. Veuillez vous reporter à l'exemple ci-dessous :
?fields=["id","invoice_number",{"invoice_lines" :["id","line_num"]}]
Objet de retour
Vous pouvez utiliser le paramètre return_object
pour contrôler le format du corps de la réponse sur tous les appels de base de création, de mise à jour ou de requête.
Lors de la création et de la mise à jour, les valeurs return_object prises en charge sont : none, limited et shallow.
Sur les appels de requête, les valeurs prises en charge sont : limitées et peu profondes.
Exemple : réponse limitée à la requête
Question : https://example.coupahost.com/api/expense_reports?return_object=limited Code de réponse : 200 Corps de la réponse : {« id » :1}
Exemple : aucune réponse lors de la création
POST : https://example.coupahost.com/api/ex...rn_object=none Corps de la demande : { "id" :2, "currency" :{ "code" :"USD" }, "lignes de dépenses" :[ { "description" :"Billet d'avion pour Reno", "merchant" :"American Airlines", "raison" :"", "amount" :"255,0", "expense-date" :"2010-02-05T00:00:00-08:00", "start-date" :"2010-02-05T00:00:00-08:00", "expense-category" :{ "name" :"Billet d'avion", } }, ], } Code de réponse : 200 Corps de la réponse :
Exemple : réponse superficielle à la création
Requête : https://example.coupahost.com/api/ex...objet=superficiel Code de réponse : 200 Corps de la réponse : { "id" :158, "created-at" :"2010-09-22T20:42:57-07:00", "updated-at" :"2014-04-24T14:56:49-07:00", "titre" :"", "status" :"en attente_d'approbation", "submitted-at" :"2014-04-24T14:56:49-07:00", "note de l'auditeur" :null, "reject-reason" :null, "paid" :false, "total" :"567,07", "audit-score" :26, "exporté" :faux, "last-exported-at" :null, "external-src-ref" :null, "external-src-name" :null, "currency" :{ "id" :1, "code" :"USD" }, "passé en charges par" :{ "id" :20, "connexion" :"connexion_utilisateur", "email" :"user_login@coupa.com" }, "created-by" :{ "id" :20, "connexion" :"connexion_utilisateur", "email" :"user_login@coupa.com" }, "mis à jour par" :{ "id" :20, "connexion" :"connexion_utilisateur", "email" :"user_login@coupa.com" }, "lignes de dépenses" :[ { "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" :[ ] }