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 codes-barres 2D.

BaCAD utilise la norme d'échange de données d'armature 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:

  • Pdf (Portable Document Format)
  • Images
    • PNG (Portable Network Graphics)
    • 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 GET) ou alors comme donnée postée (méthode 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 <SteelListResponse>
  • abs (Allgemeine-Bewehrungs-Schnittstelle) retourne les résultats sous forme ASCII (selon la norm BVBS)

Document

Le document doit être envoyé sur le site selon la méthode 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 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:

<SteelListResponse>
   <status>OK</status>
   <document>
      <project>MyProject</project>
      <division>MyDivision</division>
      <language>FR</language>
   </document>
   <page>
      <num>1</num>
      <thumbnail>/foo/bar.png</thumbnail>
      <pos>
         <bvbs>BF2D@Hj00@r001@ia@p1@l3280@n6@e2.912@d12@gB500B@s72@v@Gl160@w90@l2960@w90@l160@w0@C69@CRLF</bvbs>
         <project>MyProject</project>
         <list>MyList</list>
         <revision>Revision</revision>
         <num>8</num>
         <count>42</count>
         <length>1000</length>
         <weight>1.2<weight>
         <steel>B500B</steel>
         <diameter>12</diameter>
         <bending>46</bending>
         <bar>
            <type>BF2D</type>
            <dimensions>
               <dimension>
                  <length>500</length>
                  <radius>250</radius>
                  <angle>45</angle>
               </dimension>
            </dimensions>
         </bar>
      </pos>
   </page>
</SteelListResponse>

Le format des dimensions de barre varie selon le type de barre. Voici un exemple pour les barres standards (type BF2D):

<dimension>
   <length>500</length>
   <radius>250</radius>
   <angle>45</angle>
</dimension>

Un exemple pour les barres en 3 dimensions (type BF3D):

<dimension>
   <x>0</x>
   <y>0</y>
   <z>300</z>
</dimension>

Un exemple pour les spirales (type BFWE):

<dimension>
   <radius>200</radius>
   <number>6</number>
   <spacing>200</spacing>
</dimension>

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: cliquez ici.