LES RÉFÉRENTIELS TECHNIQUES
BoisREF
LES SOLUTIONS TECHNIQUES
API Catalogue Bois Construction
Base de données du Catalogue Bois Construction.
Le Catalogue Bois Construction est désormais accessible directement en base de donnée via une API Interface de Programmation ou « Application Programming Interface » en anglais).
Les valeurs au sein des bases de données sont la fusion des tableaux et valeurs issues du Catalogue Bois Construction et de choix de valeurs standards par les organisations professionnelles.
La base de données actuelle recense les parties d’ouvrages suivantes :
Nom Table |
Désignation |
table1 |
Murs extérieurs sans exigences globales feu façade |
table2 |
Parements extérieurs simplifiés (pour MOB) |
table3 |
Murs Porteurs Intérieurs |
table4 |
Charpente Traditionnelle |
table5 |
Charpente Industrielle |
table6 |
Planchers intermédiaires |
table7 |
Planchers Bas |
table8 |
Panneaux |
table9 |
Bardage |
table10 |
Parquets |
table11 |
Toiture-terrasses |
table12 |
Façades ossature bois avec exigences globales feu façade |
table13 |
Murs extérieurs avec exigences globales feu façade |
table14 |
Platelages extérieurs |
table20 |
DXF |
Racine
Le point d’entrée racine de l’API est https://api.catalogue-bois-construction.fr/api
Dans la suite de cette documentation, il y sera fait référence par $API.
Authentification
L’API est en consultation uniquement. Il n’est pas nécessaire de s’authentifier pour l’interroger.
Formats de données API
Content-type
Les différents points d’API n’attendent pas de données d’entrée et renvoient en sortie du JSON (application/json).
Listes simples
Les listes simples sont renvoyées sous forme d’une liste JSON.
Par exemple, la liste des tables ($API/v1/tables) :
Gestion d’erreurs
La gestion d’erreur de l’API utilise les codes d’erreur HTTP standards :
400 : requête invalide
404 : Données non trouvées
500 : erreur indéfinie côté serveur
502 : le serveur ne répond pas
Lorsque c’est possible, l’API répondra en HTML.
Support
Si vous n’arrivez pas à comprendre une erreur, que vous avez besoin de support, pensez à fournir les éléments suivants :
- La requête HTTP effectuée (avec les entêtes HTTP)
- La réponse éventuelle du serveur (avec ses entêtes)
- La date et l’heure de la requête
- Un peu de contexte sur la raison de cette requête, son cadre, etc…
Parfois, la réponse en erreur comprend une entête X-Sentry-ID.
Pensez à fournir cet identifiant, il nous permettra de comprendre précisément ce qui ne va pas et, si c’est un bug, à le corriger.
Documentation de référence de l’API V2
Historique des valeurs
Certaines données font l’objet de mise à jour, d’ajout ou de suppression. Si vous souhaitez récupérer l’ensemble des données existantes le point d’API V2 permet de télécharger l’ensemble des données afin de conserver la traçabilité des valeurs.
Pour les solutions dont une des valeurs est modifiée:
- l’id de la valeur est conservé
- l’ancienne solution se voit attribuée un nouvel id
- la propriété « origine » prend la valeur de l’id d’origine pour conserver l’historique.
- les propriétés « ajoute » et « annule » permettent de connaitre les dates de création et suppression des solutions
En usage courant il est recommandé d’utiliser la requète « /latest » qui ne renvoit que les données à jour. GET $API/v2/table/{id}/latest |
Tables
GET $API/v2/table/{id} (Liste le contenu de la table {id})
Description : Liste tout le contenu d’une table, y compris l’historique des données
Paramètre : id (texte) – Identifiant de la table récupérée de Tables::data::ID
{« data »:[
{« id »:xxxxx, (n° de ligne)
« origine »:xxxxx (n° de la ligne modifiée)
« A »: »xxxxx« , (colonne A de la table {id})
« B »: »xxxxx« , (colonne B de la table {id})
« C »: »xxxxx« , (colonne C de la table {id})
« D »: »xxxxx« , (colonne D de la table {id})
« E »: »xxxxx« , (colonne E de la table {id})
« F »:xxxxx, (colonne F de la table {id})
« G »: »xxxxx« , (colonne G de la table {id})
« H »:xxxxx, (colonne H de la table {id})
… (colonne … de la table {id})}
« ajoute »: »aaaa-mm-jj hh:mm:ss » (Date de création de la ligne)
« annule »: »aaaa-mm-jj hh:mm:ss » (Date d’annulation de la ligne),
… (Lignes suivantes)
Catalogue
GET $API/v2/catalogue
{« data »:[
{« Id »: »xxxxx« , (n° de ligne)
« Guid »: »xxxxx« , (Guid)
« Name »: »xxxxx« , (Nom)
« CAOData »:{« ParameterType »: »xxxxx« }, (type de paramètre)
« UnitString »: »xxxxx« , (unité)
« Description »: »xxxxx« , (Description)
« Table »: »xxxxx« , (identifiant table {id})
« Column »: »xxxxx« }, (nom de colonne pour table {id})
… (Lignes suivantes)
]}
Description : Liste tout le contenu du Catalogue, y compris les données historiques qui
ne sont plus actives
Paramètres optionnels :
- nom (texte) – ajoute un filtre de recherche sur les entrées de catalogue dont le
nom contient tout ou partie de la valeur du paramètres.
Usage : $API/v2/catalogue?name={name} - guid (texte) – ajoute un filtre de recherche sur les entrées de catalogue dont le
guid contient tout ou partie de la valeur du paramètres.
Usage : $API/v2/catalogue?guid={guid}
Les deux paramètres optionnels sont cumulables et le résultat contiendra les résultats
du catalogue qui correspondent aux deux filtres. L’ordre des paramètres dans la
requête n’a pas d’importance.
Usage : $API/v2/catalogue?guid={guid}&name={name}
Exemple de résultat :
[
{
« id »: 1,
« guid »: « 00331D64-F687-4C87-98F8-FB00CEA8E221 »,
« nom »: null,
« definition »: null,
« table »: null,
« colonne »: null,
« revit »: « TEXT »,
« unit_string »: null,
« up_date »: « 2020-12-08 »,
« type »: null,
« ajoute »: « 2023-01-01 00:00:00 »,
« annule »: null
},
…
]
GET $API/v2/catalogue/latest
Description : Liste les dernières valeurs du contenu du Catalogue
Le résultat est identique à la route d’historique précédente.
Version plugin REVIT
GET $API/v2/versions (Liste les version du plugin Revit)
{« data »:
{« Major »:xxxxx, (version majeur)
« Minor »:xxxxx, (version mineur)
« Revision »:xxxxx, (version de révision)
« Url »: »xxxxx« } (lien de téléchargement)
}
Documentation de référence de l’API V1
L’implémentation de l’API V1 n’est pas recommandée. Il est possible d’obtenir les mêmes résulats sur le point V2 par l’ajout de « /latest » sur les requètes. |
Catalogues
GET $API/v1/catalogues (Liste des colonnes des tables)
{« data »:[
{« Id »: »xxxxx« , (n° de ligne)
« Guid »: »xxxxx« , (Guid)
« Name »: »xxxxx« , (Nom)
« CAOData »:{« ParameterType »: »xxxxx« }, (type de paramètre)
« UnitString »: »xxxxx« , (unité)
« Description »: »xxxxx« , (Description)
« Table »: »xxxxx« , (identifiant table {id})
« Column »: »xxxxx« }, (nom de colonne pour table {id})
… (Lignes suivantes)
]}
Tables
GET $API/v1/tables (Liste des tables)
{« data » :[
{« ID »: »xxxxx« , (identifiant de table {id})
« Name »: »xxxxx » (nom de la table)},
… (Lignes suivantes)
]}
Table
GET $API/v1/table/{id} (Liste le contenu de la table {id})
Paramètre : id (texte) – Identifiant de la table récupérée de Tables::data::ID
{« data »:[
{« id »:xxxxx, (n° de ligne)
« A »: »xxxxx« , (colonne A de la table {id})
« B »: »xxxxx« , (colonne B de la table {id})
« C »: »xxxxx« , (colonne C de la table {id})
« D »: »xxxxx« , (colonne D de la table {id})
« E »: »xxxxx« , (colonne E de la table {id})
« F »:xxxxx, (colonne F de la table {id})
« G »: »xxxxx« , (colonne G de la table {id})
« H »:xxxxx, (colonne H de la table {id})
… (colonne … de la table {id})},
… (Lignes suivantes)
]}