Différences entre XML et JSON dans Coupa
Types de données dans JSON
Pour JSON, Coupa prend en charge les éléments suivants : null, booléen, number et string. La précision, la version et les valeurs similaires utilisent le type de données number, où la précision décimale, par exemple, est une chaîne. Toutes les valeurs non explicitement appelées utilisent le type de données string.
Il existe quatre différences à prendre en compte entre le fonctionnement des API REST de Coupa en cas d’utilisation de JSON et celui des API XML.
1. JSON n'utilise pas de noeud parent
Dans XML, nous obtenons le noeud parent au début et à la fin de la réponse. Dans JSON, aucun noeud parent n'est disponible en réponse.
Réponse XML
<?xml version="1.0" encoding="UTF-8"?>
<account>
<id type="integer">41</id>
<created-at type="dateTime">2016-10-07T06:56:43-07:00</created-at>
<updated-at type="dateTime">2016-10-07T06: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éponseJSON
{
"id": 43,
"created-at": "2016-10-07T06:59:46-07:00",
"updated-at": "2016-10-07T06:59:46-07:00",
"name": "account_1475848721.456090234",
"code": "segment11475848721222",
"active": true,
"segment-1": "segment11475848721222"
}
2. Réponse différente pour aucun résultat
Lorsqu'aucun résultat ne correspond à 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>No results match your search criteria.</error>
</errors>
API GET JSON
[ ]
3. Différents noeuds pour le message d'erreur
Réponse XML
<?xml version="1.0" encoding="UTF-8"?>
<errors>
<error>Segment 1 - Cost Center can't be blank.</error>
</errors>
Réponse JSON
{
"errors": {
"account": [
"Segment 1 - Cost Center can't be blank"
]
}
}
4. Réponse différente pour l'appel API du pays dans l'adresse
Voici les deux ensembles de réponses pour un appel d'API POST : 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">2016-10-07T07:19:07-07:00</created-at>
<updated-at type="dateTime">2016-10-07T07: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>US</code>
<name>United States</name>
</country>
--------------------------------
</address>
Réponse JSON
{
"id": 99,
"name": "address_1475850128.91",
"street1": "2 W 5th Ave",
"street2": "Suite 300",
"city": "San Mateo",
"state": "CA",
"postal_code": "94404",
"country_id": 223,
"address_owner_type": "BusinessGroup",
"parent_address_id": null,
"country": "United States"
}
Une partie ou la totalité de cette page peut avoir été traduite par machine. Toutes nos excuses pour les inexactitudes.