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:
Ressource | Description | Paramètres |
---|---|---|
/projects | Liste tous les projets | ?query=xx listera tous les projets contenant xx dans le nom |
/projects/1 | Liste le projet avec id 1 | |
/owners | Liste les propriétaires | |
/owners/1 | List propriétaires avec id 1 | |
Exemple
$ 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
$ 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ètre | Description |
---|---|
new_db | 1 pour créer une nouvelle base de donnée ou 0 pour ajouter un projet à une base de donnée existante |
new_db_template | Si 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_name | Si 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 |
name | Nom du projet |
constructor | Nom du constructeur/compagnie du nouveau projet |
description | Description du projet |
owner_id | ID du nouveau propriétaire |
Tous les paramètres sont obligatoires
Exemple
{
"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)
$ 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
{
"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"
}
Parameter | Descriptione |
---|---|
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_type | ID de l'email à envoyer à l'utilisateur (de /emails) |