Aperçu des API
Les API de services Web de BEACON utilisent des services Web RESTful pour fournir des données au format JSON. La plupart des environnements de programmation disposent de bibliothèques facilement accessibles permettant de créer des requêtes HTTP et d’analyser les réponses.
API de zone commune de services
Tous les services Web de BEACON Web suivent la conception d’API de zone commune de services.
Codes d’état HTTP
Il s’agit des codes de réponse standard que tous les services BEACON renvoient. Reportez-vous à chaque API pour obtenir des détails spécifiques à propos des codes.
Code | Description |
200 OK | Requête acceptée et il doit y avoir du contenu, considérez que l’opération est terminée |
202 Accepted | Requête acceptée, mais le traitement n’est pas terminé. L’en-tête d’emplacement pointe vers une URL qui indique la progression ou le résultat final |
204 No Content | Requête acceptée, mais il n’y a pas plus de détails/contenu à ce sujet, considérez que l’opération est terminée |
302 Found | Pour rediriger vers une autre URL, comme un téléchargement |
400 Bad Request | Requête mal formatée, c’est-à-dire que le JSON n’est pas valide, contrairement à un échec de validation (champ obligatoire manquant, date qui n’est pas une date), qui correspond au code 422 |
401 Unauthorized | Pas d’en-tête d’autorisation, ou non autorisé |
403 Forbidden | L’utilisateur n’a pas l’autorisation |
404 Not Found | Si une ressource ou une page spécifique n’est pas trouvée, c’est-à-dire hwr/account/blah. Dans le cas des appels de liste (c’est-à-dire GET /hwrruns), un tableau vide sera renvoyé |
409 Conflict | En général, il y a une collision à la création (POST), reportez-vous aux API pour les détails |
412 Precondition Failed | En général, il y a un problème de modification de la ressource à la mise à jour (PUT/PATCH), reportez-vous aux API pour les détails |
422 Unprocessable Entity | La syntaxe de la requête est correcte, mais l’entité n’est pas valide, un champ obligatoire est manquant ou une date est hors de la plage |
5xx | Erreur interne du serveur |
Objets de réponse
Tous les services répondent sans ambiguïté de type d’objet, c’est-à-dire qu’un client pourra obtenir de manière déterministe une réponse en fonction du code de réponse HTTP. Selon le code de réponse HTTP, le même objet est renvoyé. Certaines réponses utilisent des « wrappers » d’objets pour la pagination.
Lorsqu’une API renvoie des codes 4xx, il s’agit de réponses d’erreur standard.
Un code 2xx renvoie un objet JSON conformément à l’API.
Noms de propriétés
Tous les objets JSON utilisent la casse mixte, sauf les uuids qui sont la propriété avec UUID en suffixe, comme accountUUID, reportUUID, taskUUID, etc.
type | desc |
string (chaîne) | string (chaîne) |
int | int |
float (flottant) | float (flottant) |
bool | boolean (booléen) |
Object array (Tableau d’objets) | Un tableau d’éléments de type Object (Objet) |
uuid | UUID entre guillemets. « 3287912374838239853 » |
date | ISO 8601 entre guillemets. « 2015-02-03T13:04:24Z » |
email (courriel) | adresse de courriel entre guillemets (limite de 254). « frank@example.com« |
url | URL entre guillemets, peut être relative. « /v1/svc/3323 » |
Pagination
L’API permet de paginer les ensembles de résultats. Les résultats paginés sont renvoyés dans un objet wrapper de pagination, avec les objets sous une propriété de résultats. La requête d’API doit inclure un ensemble de paramètres standard qui indique les critères de pagination.
Paramètres
param | type | desc |
offset | int | Décalage de numéro d’enregistrement, en commençant par 0. Le premier numéro d’enregistrement après ce décalage est inclus dans les résultats. Valeur par défaut : 0 |
limit | int | Nombre maximal d’enregistrements à renvoyer, jusqu’à un maximum de 100. Il est possible que moins d’enregistrements soient renvoyés. Valeur par défaut : 50 |
trier | string (chaîne) | Champ selon lequel trier |
dir | enum | desc | asc. Valeur par défaut : desc |
Objet de réponse
propriété | type | desc |
total | int | le nombre total dans l’ensemble |
from | int | le numéro d’enregistrement du premier élément dans les résultats. Les numéros d’enregistrement démarrent à 1 |
à | int | le nombre d’enregistrements du dernier élément des résultats |
résultats | Object array (Tableau d’objets) | un tableau des objets de résultat; voir API pour le type d’objet. Ce sera un tableau vide si le total est de 0. Il peut également être vide s’il n’y a aucun résultat qui commence au décalage demandé |
{ "total": 532, "from": 101, "to": 150, "results": [ { MY OBJECT ]} }
Codes API
Tous les services utilisent un format de code API commun :
apicode:= [E|W|I|D]-tla-nnn
Chaque service définit les codes d’erreur possibles et leurs significations.
Par exemple, E-HWR-200 ou W-TSK-56
Arguments de code
Certains codes peuvent nécessiter des arguments. Vous pouvez les utiliser lorsque vous créez un message d’erreur, par exemple le code E-HWR-301 peut se traduire en français par « Le modèle cloné ({1}) n’existe pas », où {1} est la première valeur d’argument, par exemple « Exécution en hiver ».
La propriété args facultative dans la réponse d’erreur est un tableau de chaînes.
Codes de raisons
Les codes de raisons sont des points non lisibles par l’homme dans le code qui indiquent l’emplacement du code d’API ou la raison sous-jacente de la génération du code. Ils peuvent être attachés et un service doit faire suivre les codes de raison : si le service HWR appelle le service TSK, qui renvoie un code d’erreur et de raison, le service HWR doit renvoyer un nouveau code d’API (E-HWR-nnn) et attacher le code de raison TSK (HWR-client.tsk_TSK-run.py:56)
reason:= tla-msg[_reason]* msg:= anyalpha ^_
Error Responses
Un service qui renvoie des erreurs répond avec un objet standard qui contient au moins le code et la raison.
{ "code": "E-HWR-200", "args": ["a code argument"], "reason": "HWR-client.tsk_TSK-run.py:56 }
Codes d’API communs
Ces codes sont communs à tous les services.
État HTTP | Code API | args | desc |
400 | E-API-400 | code d’état | Un problème interne causé par une mauvaise requête |
400 | E-API-450 | lineNbr, colNbr | Exception de traitement JSON générale |
400 | E-API-451 | lineNbr, colNbr | L’analyse JSON a échoué. JSON mal conçu |
400 | E-API-452 | lineNbr, colNbr | Mappage JSON |
400 | E-API-453 | lineNbr, colNbr | Génération de JSON. Impossible de générer une réponse JSON |
406 | E-API-406 | Le type de média d’acceptation de réponse n’est pas pris en charge | |
415 | E-API-415 | Le type de média de la requête de type Contenu n’est pas pris en charge | |
422 | E-API-422 | property:error, … | Échec de validation. Voir API pour la description des propriétés d’objet requises |
500 | E-API-500 | Erreur interne du serveur |
Authentification
L’API utilise l’authentification d’accès de base HTTP pour fournir à vos applications un accès sécurisé à toutes les données disponibles sur votre compte. De plus, toutes les requêtes doivent passer par notre point de terminaison HTTPS, où tous les transferts de données sont chiffrés par SSL. Avec votre nom d’utilisateur et votre mot de passe BEACON, vous pouvez utiliser la méthode base64 de votre bibliothèque de programmation pour créer un en-tête d’autorisation HTTP. Pour consulter une explication de cette procédure, reportez-vous à : http://en.wikipedia.org/wiki/Basic_access_authentication.
Get Support