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
Description : Liste le contenu d’une table avec les dernières valeurs à jour
Paramètre : id (texte) – Identifiant de la table récupérée de Tables::data::ID

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)

]}