Différences entre XML et JSON dans Coupa
Types de données en JSON
Pour JSON, Coupa prend en charge les éléments suivants : null, boolean, number et strings. La précision, la version et des valeurs similaires utilisent le type de données numérique, où la précision décimale, par exemple, est une chaîne. Toutes les valeurs qui ne sont pas explicitement appelées utilisent le type de données de la chaîne.
Il y a quatre différences à prendre en compte entre le fonctionnement des API REST de Coupa lors de l'utilisation de JSON et l'utilisation de XML.
1. JSON n'utilise pas de nœud parent
En XML, nous obtenons le nœud parent au début et à la fin de la réponse. Dans JSON, aucun nœud parent n'est disponible dans la réponse.
Réponse XML
<?xml version="1.0" encoding="UTF-8"?>
<account>
<id type="integer">41</id>
<created-at type="dateTime">07/10/2016T06:56:43-07:00</created-at>
<updated-at type="dateTime">07/10/2016T06:56:43-07:00</updated-at>
<name>account_1475848602.731066227</name>
<code>segment11475848602928</code>
<active type="boolean">true</active>
<segment-1>segment11475848602928</segment-1>
<segment-2 nil="true" />
---------------------------------------------
</account>
Réponse JSON
{
"id" : 43,
"created-at" : "07/10/2016T06:59:46-07:00",
"updated-at" : "07/10/2016T06:59:46-07:00",
"nom" : "account_1475848721.456090234",
"code" : "segment11475848721222",
"active" : true,
"segment-1" : "segment11475848721222"
}
2. Réponse différente pour aucun résultat
Lorsqu'il n'y a pas de résultats correspondant à la requête GET, notre réponse XML génère une erreur 404, où la réponse JSON fournit un tableau vide.
OBTENIR : https://dashmaster17-0.coupadev.com/api/accounts?id=NON_EXISTING
Réponse XML
<?xml version="1.0" encoding="UTF-8"?>
<errors>
<error>Aucun résultat ne correspond à vos critères de recherche.</error>
</errors>
API JSON GET
[ ]
3. Différents nœuds pour le message d'erreur
Réponse XML
<?xml version="1.0" encoding="UTF-8"?>
<errors>
<error>Segment 1 - Le centre de coûts ne peut pas être vide.</error>
</errors>
Réponse JSON
{
"errors" : {
"compte" : [
"Segment 1 - Le centre de coûts ne peut être vide"
]
}
}
4. Réponse différente pour l'appel d'API du pays dans l'adresse
Vous trouverez ci-dessous les deux ensembles de réponses pour un appel POST API : http ://localhost :3000/api/addresses
Réponse XML
<?xml version="1.0" encoding="UTF-8"?>
<address>
<id type="integer">97</id>
<created-at type="dateTime">07/10/2016T07:19:07-07:00</created-at>
<updated-at type="dateTime">07/10/2016T07:19:07-07:00</updated-at>
<name>address_1475849947.739228964</name>
<location-code nil="true" />
<street1>2 W 5th Ave</street1>
--------------------------------
<country>
<id type="integer">223</id>
<code>États-Unis</code>
<name>États-Unis</name>
</country>
--------------------------------
</address>
Réponse JSON
{
"id" : 99,
"nom" : "adresse_1475850128.91",
"street1" : "2 W 5th Ave",
"street2" : "Suite 300",
"ville" : "San Mateo",
"state" : "CA",
"code_postal" : "94404",
"country_id" : 223,
"address_owner_type" : "BusinessGroup",
"parent_address_id" : null,
"pays" : "États-Unis"
}