====== BaCAD Steel List Barcodes Transcription API ======
version 0.2 (beta)
\\ 18.01.2012
===== Introduction =====
Bienvenue sur la documentation de l'API du service de retranscription de liste de fer BaCAD ! Ce service vous offre une interface simple pour extraire les données d'une liste de fer BaCAD, de manière rapide, grâce à la traduction des [[wp>Barcode|codes-barres]] 2D.
{{:private:bvbs.png?nolink&40 |}}
BaCAD utilise la norme d'échange de données d'armature [[http://www.bvbs.de|BVBS]].
===== Limitations d'utilisation =====
...
===== Authentification ====
Le service est sécurisé par un système d'authentification basique HTTP (paire user/password). Cette identification est nécessaire pour utiliser chacune des fonctionnalités présentées dans ce document.
===== Requêtes =====
L'API renvoie les données d'une liste de fer BaCAD en détectant/décodant les codes barres à l'intérieur. Vous envoyez la liste de fer sous plusieurs formats possibles:
* [[wp>Portable_Document_Format|Pdf]] (Portable Document Format)
* Images
* [[wp>JPEG|JPEG]]
* [[wp>Portable_Network_Graphics|PNG]] (Portable Network Graphics)
* [[wp>Graphics_Interchange_Format|GIF]] (Graphics Interchange Format)
Ce document décrit le format requis des URLs et les paramètres disponibles.
Un URL de requête au service doit se présenter sous la forme suivante:
http://cloud.bacad.ch/steellist.php?parameters
ou
https://cloud.bacad.ch/steellist.php?parameters (connexion sécurisée SSL)
==== Paramètres ====
Excepté pour le document, chaque paramètre peut être spécifié soit dans l'URL (méthode [[wp>GET_(HTTP)|GET]]) ou alors comme donnée postée (méthode [[wp>POST_(HTTP)|POST]]). Les paramètres sont les suivants:
* ''format'': formats de sortie
* ''uploadedfile'': document
* options de sortie
=== Formats de sortie ===
Le format de sortie est spécifié grâce à la variable '''format'''. L'API supporte actuellement les formats de sortie suivant:
* **xml** retourne les résultats sous forme XML, contenu dans un noeud
* **abs** (**A**llgemeine-**B**ewehrungs-**S**chnittstelle) retourne les résultats sous forme ASCII (selon la norm [[http://www.bvbs.de|BVBS]])
=== Document ===
Le document doit être envoyé sur le site selon la méthode [[wp>POST_(HTTP)|POST]] du protocole HTTP, sous le nom '''uploadedfile'''.
=== Options de sortie ===
Les options de sortie permettent d'activer/désactiver la génération de données supplémentaires dans le résultat:
* Le paramètre '''posBvbs''' à '1' indique que le service doit inclure les données BVBS (pour chaque barre) au résultat
* Le paramètre '''barXml''' à '1' indique que le service doit inclure les données XML (pour chaque barre) au résultat
===== Réponses =====
==== XML ====
Pour chaque demande valide, le service renvoie une réponse '''SteelListResponse''' dans le format indiqué dans l'URL de requête. Chaque réponse contient les éléments suivants:
* Un code d'état **status**, qui peut avoir l'une des valeurs suivantes:
* ''OK'' indiquant que la requête a été un succès
* ''AUTH_FAILED'' indiquant que l'identification de l'utilisateur a échoué (paire user/password)
* ''INVALID_REQUEST'' indiquant que la requête a été mal-formées
* ''INVALID_API_KEY'' indiquant que la clé d'utilisation de l'API est incorrecte
* ''INVALID_FILE_TYPE'' indiquant que le type du fichier posté n'est supporté
* ''FILE_OVER_SIZE_LIMIT'' indiquant que le fichier posté est trop volumineux (taille excessive)
* ''FILE_UPLOAD_ERROR'' indiquant une erreur de téléchargement du fichier
* ''INTERNAL_ERROR'' indiquant une erreur interne du service
* ''UNKNOWN_ERROR'' indiquant une erreur inconnue
* Un élément ''document'' contenant les éléments décrivant les propriétés du document
* Un élément ''project'' indiquant le nom du projet
* Un élément ''division'' indiquant le nom de la division
* Un tableau de résultats (**pages**) contenant:
* Un élément ''num'' indiquant le numéro de la page
* Un élément ''thumbnail'' indiquant l'URL (partiel) vers l'aperçu (image) de la page
* Un tableau de positions (**pos**) contenant:
* Un élément ''num'' indiquant le numéro de la position
* Un élément ''bvbs'' indiquant le code [[http://www.bvbs.de|BVBS]] de la position
* Un élément ''bar'' contenant les éléments décrivant les caractéristiques de la barre
* Un élément ''type'' indiquant le type de la barre 2D, 3D, etc. Les valeurs peuvent être les suivantes:
* ''BF2D'' indiquant une barre en 2 dimensions
* ''BF3D'' indiquant une barre en 3 dimensions
* ''BFWE'' indiquant une barre en spirale
* Un tableau d'élément ''dimension'' contenant les éléments décrivant chaque segment de la barre (selon son type)
* Barre 2D
* Un élément ''length'' indiquant la longueur du segment
* Un élément ''radius'' indiquant le rayon du segment arrondi (0 si segment droit)
* Un élément ''angle'' indiquant la différence d'angle entre le segment et son prédécesseur
* Barre 3D
* Un élément ''x'' indiquant la première composante du vecteur du segment
* Un élément ''y'' indiquant la deuxième composante du vecteur du segment
* Un élément ''z'' indiquant la troisième composante du vecteur du segment
* Barre spirale
* Un élément ''radius'' indiquant le rayon du cercle décrit par la spirale
* Un élément ''number'' indiquant le nombre de rotations décrites par la spirale
* Un élément ''spacing'' indiquant l'espace entre chaque rotations décrites par la spirale
==== Exemples ====
Voici un exemple (partiel) du retour au format Xml:
OK
MyProject
MyDivision
FR
1
/foo/bar.png
BF2D@Hj00@r001@ia@p1@l3280@n6@e2.912@d12@gB500B@s72@v@Gl160@w90@l2960@w90@l160@w0@C69@CRLF
MyProject
MyList
Revision
8
42
1000
1.2
B500B
12
46
BF2D
500
250
45
Le format des dimensions de barre varie selon le type de barre.
Voici un exemple pour les barres standards (type BF2D):
500
250
45
Un exemple pour les barres en 3 dimensions (type BF3D):
0
0
300
Un exemple pour les spirales (type BFWE):
200
6
200
Un exemple ABS:
BF2D@Hj00@r001@ia@p1@l3280@n6@e2.912@d12@gB500B@s72@v@Gl160@w90@l2960@w90@l160@w0@C69@
BF2D@Hj00@r001@ia@p2@l5280@n6@e4.688@d12@gB500B@s72@v@Gl160@w90@l4960@w90@l160@w0@C84@
BF2D@Hj00@r001@ia@p3@l2370@n11@e1.461@d10@gB500B@s60@v@Gl140@w90@l2230@w0@C71@
BF2D@Hj00@r001@ia@p4@l1960@n6@e1.208@d10@gB500B@s60@v@Gl1960@w0@C96@
===== Test =====
Une page Html est à disposition pour tester le service: [[http://cloud.bacad.ch|cliquez ici]].