Document toolboxDocument toolbox

Admin. rest API

Ce document décrit la possibilité d'interagir avec le système d'administration à l'aide d'appels REST (GET, POST, PUT, PUTCH, PATCH, DELETE) permettant l'automatisation des tâches comme la création de projets et des utilisateurs.

Tous les exemples sont produits à l'aide de la fonction curl .

Général

Authentification

Le système utilise l'authentification BASIC AUTH. Pour vous connecter, vous avez simplement besoin d'un utilisateur du système d'administration et vous pouvez vous connecter avec la même combinaison de nom d'utilisateur et de mot de passe que celle que vous utilisez pour un accès WEB normal.

Data formats and URL's

Toutes les ressources sont accessibles au format HTML, XML ou JSON.

E.g. le lien http://[url]/projects donne le listing projet HTML et http://[url]/projects.xml fournit la même liste en format XML et http://[url]/projects.json donne la liste des projets et utilisateurs en format JSON.

Certaines ressources (utilisateurs notables) ont des points (.) dans leurs noms de ressources de sorte que le.json ne peut pas être utilisé. Assurez-vous d'envoyer "Accepter : application/json" dans l'en-tête à la place pour que

curl -H "Accept: application/json" -s -u testadmin:testpw http://localhost:3000/users/hakonhc

donnera la même chose que

curl -s -u testadmin:testpw http://localhost:3000/users/hakonhc.json

Ressources:

Resouce

Description

Resouce

Description

/projects

Listes et manipulation de projets

/owners

Liste des propriétaires de projets

/users

la manipulation des utilisateurs sur le serveur

/database

Recensement et manipulation des bases de données

/project_users

Liste et manipulation des utilisateurs dans les projets

La plupart des ressources répondent à la fois à GET, PATCH et DELETE.

En outre, nous avons un critère d'évaluation spécial pour les noms de domaine en :

Resouce

Description

Resouce

Description

/node/logins

Obtenir des statistiques de connexion pour les projets









GET Ressources: Listes

Resource

Description

Parameters

Resource

Description

Parameters

/projects

Liste de tous les projets

?query=xx listera de tous les projets contenant xx dans le nom

?show_all=1 pour inclure les projets inactifs

/projects/1

Liste des projets avec id 1



/owners

Liste tous les propriétaires



/owners/1

Liste les propriétaires avec id 1



/users

Liste tous les utilisateurs

?q=xx pour rechercher

/users/username

Liste les utilisateurs avec nom d'utilisateur



/database

Liste les base de données



/project_users/username,projectid

Montre les utilisateurs projet















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 Ressources: Créer des objets

Exemple

Cela crée un propriétaire avec le nom "Test" et à partir du retour nous pouvons voir qu'il a été assigné avec ID 11

Créer un nouveau projet ( POST /projets)

La création d'un nouveau projet nécessite des paramètres spéciaux. Ce serait le minimum de données à fournir lors de la création d'un nouveau projet

Paramètre

Description

Paramètre

Description

new_db

1 pour créer une nouvelle base de données ou 0 pour ajouter un projet à une base de données existante

new_db_template

Si vous créez une nouvelle base de données, indiquez le nom de la base de données qui servira de modèle.

new_db_name

Si vous créez une nouvelle base de données, indiquez le nom de la nouvelle base de données

existing_db_name

Si une nouvelle BDD n'est PAS crée (new_db set to 0) fournir le nom de la BDD existante à ajouter au projet

name

Nom de la BDD

constructor

Nom du constructeur/de l'entreprise du nouveau projet

description

Description du projet

owner_id

ID du propriétaire

project_type_id

Type de project. Utilisez l'une des valeurs suivantes  



id │ name
─┼────────────────────
1 │ Active Project
2 │ Deprecated Project
3 │ Demo
4 │ Copy / Backup
5 │ Template
6 │ Sandbox / Test
7 │ Training
8 │ Trial



Tous les paramètres sont obligatoires

Exemple

Créer un nouvel utilisateur de projet (POST /project_users)

Où data.json conttient



Paramètre

Description

Paramètre

Description

project_user

project_id: ID du projet à ajouter à

room_rights: niveau de permission de la pièce

equipment_rights

tender_rights

consignation_rights

system_rights

modelstore_rights

superuser. Administrateur projet

addon_admin: BIM admin

no_web_admin_access: si l'utilisateur est super-utilisateur, l'accès à l'administrateur web est refusé

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

If the user exists, make sure that the information given is equal to the information registred on the server

mail_type

ID de l'email à envoyer à l'utilisateur (depuis /emails)

GET Resources: Manipulation d'objets et plus encore

Bases de données

Ressource



Ressource



/database/[dbname]/disableall

Désactive tous les utilisateurs du projet dans la base de données avec nom dbname

/database/[dbname]/enableall

Permet à tous les utilisateurs du projet d'accéder à la base de données avec le nom dbname

/database/[dbname]/kickall

Déconnecte tous les utilisateurs de la base de données avec le nom dbname

/database/[dbname]/get_backup_now

Télécharge une sauvegarde de la base de données





Utilisateurs

Ressource



Ressource



/users/[username]/disable

Désactive un utilisateur pour qu'il ne puisse se connecter à aucun projet

/users/[username]/enable

Autorise un utilisateur

/users/[username]/kick

Déconnecte tous les utilisateurs de la base de données xxx









PUT/PATCH Ressources: Mises à jour

Resource



Resource



/projects/[id]

Mise à jour du projet

/project_users/username,projectid

Mise à jour de l'utilisateur du projet

Exemple 1: Mise à jour du projet

où data.json contient

Exemple 2: Mise à jour de l'utilisateur du projet

Où data.json contient

DELETE Ressources

Vous utilisez également l'opération SUPPRIMER pour supprimer la plupart des objets.

Cet exemple supprimera un utilisateur d'un projet