Skip to main content
Skip table of contents

REST API.

Ceci documente la possibilité d'intéragir avec le système adinistrateur en utilisant les appels REST (HTTP PUT et GET) permettant l'automatisation des taches comme créer des projets ou des utilisateurs.

Tous les exemples sont produits en utilisant l'interface cURL.

General

Authentification

Le système utilise l'authentification BASIC AUTH. Se connecter simplement nécéssite un système administrateur et vous pourrez vous connecter avec le même nom d'utilisateur et mot de passe que ceux utilisés pour les accès normal WEB. 

Formats de données et URL

Toutes les ressources peuvent être accédées en utilisant des formats normaux HTML, XML ou JSON. 

Ex. le lien http://[url]/projects donne la liste des projets HTML normaux alors que http://[url]/projects.xml donne la même liste en format XML et http://[url]/projects.json donne la liste en format JSON.

Ressource GET:

RessourceDescriptionParamètres
/projectsListe tous les projets?query=xx listera tous les projets contenant xx dans le nom
/projects/1Liste le projet avec id 1
/ownersListe les propriétaires
/owners/1List propriétaires avec id 1


















Exemple

CODE
$ curl -s -u testadmin:testpw http://localhost:3000/projects.json?query=template|json_reformat 
[
    {
        "project": {
            "active": true,
            "contact": null,
            "created_at": "2016-11-01T09:39:14Z",
            "created_by": null,
            "database_id": "akl-test",
            "description": null,
            "gross_area": null,
            "id": 399,
            "name": "dRofus dev template",
            "no": "01",
            "owner_id": 5,
            "status": null,
            "updated": null,
            "updated_by": null
        }
    },
.....

POST

Exemple

Ceci crée un propriétaire avec le nom "Test" et à partir du retour à la ligne on peut voir qu'il a été assigné avec l'ID 11 

CODE
$ curl -H "Accept: application/json" -H "Content-type: application/json" -X POST -u testadmin:testpw -d '{"owner":{"name":"Test"}}' http://localhost:3000/owners


{"owner":{"address":null,"billing_address":null,"contact":null,"id":11,"image":null,"name":"Test","network":null,"note":null,"tech_contact":null}}

Créer un nouveau projet ( POST /projets)

Créer un nouveau projet nécéssite des paramètres spéciaux. Ceci serait le minimum de données à fournir pour la création d'un nouveau projet.

ParamètreDescription
new_db1 pour créer une nouvelle base de donnée ou 0 pour ajouter un projet à une base de donnée existante
new_db_templateSi vous créez une nouvelle base de donnée, fournir le nom de la base de donnée que vous utiliserez en gabarit
new_db_name

Si vous créez une nouvelle base de donnée, fournir le nom de la nouvelle base de donnée

existing_db_nameSi vous ne créez PAS une nouvelle base de donnée (new_db à 0) fournir le nom de la base de donnée existante où ajouter le nouveau projet
nameNom du projet
constructor

Nom du constructeur/compagnie du nouveau projet

description

Description du projet

owner_idID du nouveau propriétaire

Tous les paramètres sont obligatoires

Exemple

CODE
{
  "project": {
    "new_db": "1",
    "new_db_template": "dev-template",
    "new_db_name": "rest_test",
    "name": "REST TEST",
    "owner_id": 5,
    "description": "TEST CREATE FROM REST",
    "constructor" : "dRofus AS"
  }
}


Création d'un nouvel utilisateur (POST /project_users)


CODE
$ curl -H "Accept: application/json" -H "Content-type: application/json; charset=UTF-8" -X POST -u testadmin:testpw -d @data.json http://localhost:3000/project_users.json

{"project_user":{"created_at":"2016-11-28T12:22:35Z","project_id":408,"role":null,"superuser":null,"user_role_id":null,"username":"hakonhc"}}

Wherer data.json contains

CODE
{
  "project_user": { "project_id": 408,"room_rights":1 },
  "user": {"username": "hakonhc", "first_name":"Håkon","last_name":"Clausen","email":"hhc@drofus.com"},
  "mail_type": "6"
}
ParameterDescriptione
project_user

project_id: ID du projet auquel il est ajouté

room_rights: niveau d'accès pour pièces

equipment_rights droit d'accès équipements

tender_rights droit d'accès pour AO

consignation_rights

system_rights droit d'accès systèmes

modelstore_rights

superuser superutilisateurs

user

username: nom d'utilisateur de l'utilisateur à ajouter

first_name: Prénom de l'utilisateur à ajouter

last_name: Nom de famille de l'utilisateur à ajouter

email: Email de l'utilisateur à ajouter

Si l'utilisateur existe déjà, assurez vous que l'information donnée est égale à l'information enregistrée sur le serveur

mail_typeID de l'email à envoyer à l'utilisateur (de /emails)
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.