これは、RESTコール(GET、POST、PUT、PATCH、DELETE)を使用して管理システムと相互作用する可能性を文書化したもので、プロジェクトやユーザーを作成するようなタスクの自動化を可能にします。
すべての例は、curl ユーティリティを使って作成されています。
Table of Contents |
---|
一般
認証
これは、RESTコール(GET、POST、PUT、PATCH、DELETE)を使用して管理システムと相互作用する可能性を文書化したもので、プロジェクトやユーザーを作成するようなタスクの自動化を可能にします。
すべての例は、curl ユーティリティを使って作成されています。
Table of Contents |
---|
一般
認証
システムは、BASIC AUTH認証を使用しています。ログインには管理者ユーザが必要で、通常のWEBアクセスと同じユーザ名
パスワードの組み合わせでログインできます。
...
Code Block |
---|
curl -s -u testadmin:testpw http://[admin-url]/users/hakonhc.json |
...
リソース:
Resourceリソース | Description説明 |
---|---|
/projects | プロジェクトのリストと操作 |
/owners | プロジェクト所有者のリスト |
/users | サーバー上のユーザーの一覧と操作 |
/database | データベースの一覧表示と操作 |
/project_users | プロジェクトのユーザー一覧と操作 |
...
さらに、以下のような特別なエンドポイントもあります:
Resource
Description
Parameters
/projects
リソース | メソッド | 説明 | ||
---|---|---|---|---|
/node/logins | GETGet | login statistics for projects for the last 5 years, grouped by type of client used(Revit, dRofus etc.)過去5年間のプロジェクトのログイン統計を、クライアントの使用タイプ(Revit、dRofusなど)別にグループ化して取得します。 | ||
/node/logins?from_date=2018-01-01&to_date=2019-12-31 | GET | Get login statistics for projects for the given time period, grouped by type of client used(Revit, dRofus etc.) | GET | 指定された期間のプロジェクトのログイン統計情報を、使用しているクライアントのタイプごとにグループ化して取得します (Revit、dRofusなど)。 |
/node/unique_users | GET | Gets number of unique users for each project for the last 5 years過去5年間の各プロジェクトのユニーク・ユーザー数を取得します。 | ||
/node/unique_users?from_date=2018-01-01&to_date=2019-12-31 | GEt | Gets number of unique users for each project for the given period.指定された期間における各プロジェクトのユニークユーザー数を取得します。 | ||
/project_data?from_date=2018-01-01&to_date=2019-12-31 | GEt | Get statstics values on projects, to_date and from_date are optional limits on dateプロジェクトの統計値を取得、to_dateとfrom_dateは、日付のオプション制限です。 | ||
/password/request_reset | GETA | post request with a valid username will trigger a password reset email有効なユーザー名でのポスト リクエストは、パスワードリセットメールをトリガーします。 | ||
/password/reset | GET | Use this with a token to change password with the APIAPIでパスワードを変更するには、トークンとともにこれを使用します。 | ||
/owners/[id]/tasks/[TaskName]/run?source=[sourcedb]©_ids=[ids] | POST | Run a given task against all databases for a given owner. TaskName is one of the following
|
GET Resources: Listings
特定の所有者の全データベースに対して特定のタスクを実行します。タスク名 (TaskName)は以下のいずれかです。
|
リソースを取得:リスト
リソース | 説明 | パラメータ |
---|---|---|
/projects | すべてのプロジェクトをリスト | ?query=xx will list all projects contaning xx in the nameは、プロジェクト名に xx を含むすべてのプロジェクトをリストアップします。 ?show_all=1 to also include inactive projects活動休止中のプロジェクトも含める。 |
/projects/1 | List project with id 11のプロジェクトをリスト | |
/ownersList all owners | すべての所有者をリスト | |
/owners/1 | List owner with 所有者を id 1 でリスト | |
/usersList of all users | 全ユーザーのリスト | ?query=xx to searchxxを検索する。 |
/users/usernameList user | with usernameユーザー名でユーザーをリスト | |
/database | List databasesデータベースのリスト | |
/project_users/username,projectid | Show project userプロジェクトユーザーを表示 |
Example例
Code Block |
---|
$ curl -s -u testadmin:testpw http://[admin-url]/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, "unit_type": "SM" #SM for square meters or SF for square feet } }, ..... |
POST Resources: Creating objects
Example
...
リソースのPOST:オブジェクトの作成
例
これにより “テスト (Test)”という名前の所有者が作成され、ID 11が割り当てられていることがわかります。
Code Block |
---|
$ curl -H "Accept: application/json" -H "Content-type: application/json" -X POST -u testadmin:testpw -d '{"owner":{"name":"Test"}}' http://[admin-url]/owners {"owner":{"address":null,"billing_address":null,"contact":null,"id":11,"image":null,"name":"Test","network":null,"note":null,"tech_contact":null}} |
...
新規プロジェクトの作成 (POST/projects
...
Creating a new project requires some special parameters. This would the minimal data to provide when creating a new project
...
Parameter
...
)
新しいプロジェクトを作成するには、いくつかの特別なパラメータが必要です。新しいプロジェクトを作成する際に、最低限必要なデータは以下の通りです。
パラメータ | 説明 |
---|---|
new_db |
新しいデータベースを作成する場合は1、既存のデータベースにプロジェクトを追加する場合は0。 |
new_db_template |
新しいデータベースを作成する場合は、テンプレートとして使用するデータベース名を指定。 |
new_db_name |
新しいデータベースを作成する場合は、新しいデータベースの名前を入力してください。 |
existing_db_name |
新しいデータベースを作成しない場合(new_dbを0に設定)、新しいプロジェクトを追加する既存のデータベース名を指定。 |
name |
プロジェクト名。 |
constructor |
新規プロジェクトの施工者 (建設者)/会社名。 |
description |
プロジェクトの内容。 |
owner_id |
所有者 (オーナー) のID。 |
project_type_id |
プロジェクトのタイプ。以下の値のいずれかを使用します。 id |
│ 名前 |
All the parameters are mandatory
...
(トライアル) |
すべてのパラメータは必須です。
例
Code Block |
---|
{ "project": { "new_db": "1", "new_db_template": "dev-template", "new_db_name": "rest_test", "project_type_id": 1, "name": "REST TEST", "owner_id": 5, "description": "TEST CREATE FROM REST", "constructor" : "dRofus AS" } } |
...
新規プロジェクト・ユーザーの作成 (POST /project_users)
Code Block |
---|
$ curl -H "Accept: application/json" -H "Content-type: application/json; charset=UTF-8" -X POST -u testadmin:testpw -d @data.json http://[admin-url]/project_users {"project_user":{"created_at":"2016-11-28T12:22:35Z","project_id":408,"role":null,"superuser":null,"user_role_id":null,"username":"hakonhc"}} |
Where data.json containsjsonには以下の内容が含まれます。
Code Block |
---|
{ "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 of the project to add toid:追加するプロジェクトのID room_rights: room permission levelrights:部屋の許可レベル equipment_rights tender_rights consignation_rights system_rights modelstore_rights superuser. Project administratorプロジェクト管理者 addon_admin: BIM adminno_web_admin_access: if user is superuser, this denies the access to the web admin_admin:BIM管理者 no_web_admin_access:ユーザーがスーパーユーザーの場合、Web管理者へのアクセスを拒否 hide_price: true or false should the user see prices | user | username: Username of the user to add first_name: First name of the user to add last_name: Last name of the user to addユーザーが価格を見た場合、true (真)またはfalse (偽) |
ユーザー | username:追加するユーザのユーザー名 first_name:追加するユーザーの名前 last_name:追加するユーザーの姓名 email: Email of the user to addIf the user exists, make sure that the information given is equal to the information registred on the server ユーザーが存在する場合、与えられた情報がサーバーに登録されている情報と同じであることを確認します。 | ||
mail_type | ID of the email to send to the user ユーザーに送信するメールのID (from /emails), "skip_email" means no email will be sent. |
GET Resources: Object manipulation and more
Databases
、”skip_email”はメールを送信しないことを意味します。 |
リソースを取得:オブジェクトの操作とその他
データベース
リソース | |
---|---|
/database/[dbname]/disableallDisables | all project users in database with name dbnamedbnameという名前のデータベース内のすべてのプロジェクトユーザーを無効にする。 |
/database/[dbname]/enableall | Enables all project users in database with name dbnamedbname という名前のデータベース内のすべてのプロジェクト・ユーザーを有効にする。 |
/database/[dbname]/kickall | Logs out all users in database with name dbnamedbname という名前のデータベース内のすべてのユーザーをログアウトする。 |
/database/[dbname]/get_backup_now | Downloads a backup of the database |
Users
データベースのバックアップをダウンロードする。 |
ユーザー
リソース | |
---|---|
/users/[username]/disableDisables a users so he can not log into any project]/disable | プロジェクトにログインできないようにユーザーを無効にする。 |
/users/[username]/enable | Enables a userユーザーを有効にする。 |
/users/[username]/kick | Logs out all users in database xxx |
POST Resources: Toggles and other changes
Users
データベースxxxの全ユーザーをログアウトする。 |
POSTリソース:トグルとその他の変更
ユーザー
リソース | |
---|---|
/users/[username]/toggle_otp | Toggles whether the user has to login using Multi Factor Authenticationユーザーが、多要素認証を使用してログインしなければならないかどうかを切り替えます。 |
/users/[username]/toggle_force_webloginToggles whether the user has to login using Modern Login/SSO_force_weblogin | モダン・ログイン/SSOを使用してログインするかどうかを切り替えます。 |
/users/[username]/toggle_local_authentication | Toggles whether the user can use local or have to use external authentication ユーザが、ローカル認証を使用できるか、外部認証 (Entra) を使用しなければならないかを切り替えます。 |
/users/[username]/toggle_enable | Toggles enabling and disabling of the userユーザの有効/無効を切り替えます。 |
/users/[username]/merge?to=[to_username] | Merge user into another userユーザーを別のユーザーに統合。 |
PUT/
...
PATCHリソース:最新情報
リソース | |
---|---|
/projects/[id] | Update projectプロジェクトの更新 |
/project_users/username,projectid | Update project user |
...
プロジェクトユーザーの更新 |
例1:プロジェクトの更新
Code Block |
---|
$ curl -H "Accept: application/json" -H "Content-type: application/json; charset=UTF-8" -X PATCH -u testadmin:testpw -d @data.json http://[admin-url]/projects/1 |
Wherer data.json containsjsonに含まれる内容
Code Block |
---|
{ "project": { "name": "REST TEST", "description": "TEST UPDATE FROM REST", "active":true } } |
Example 例 2: Update project userプロジェクトユーザーを更新
Code Block |
---|
$ curl -H "Accept: application/json" -H "Content-type: application/json; charset=UTF-8" -X PATCH -u testadmin:testpw -d @data.json http://[admin-url]/project_user/testuser,1 |
Wherer data.json containsjsonに含まれる内容
Code Block |
---|
{ "project_user":{ "username":"test", "project_id":647, "room_rights":1, "equipment_rights":3, "tender_rights":4, "room_surface_treatment_rights":4 } } |
DELETE Resources
You also use the DELETE operation to delete most object.
...
リソースの削除
また、削除 (DELETE)オペレーションを使用して、ほとんどのオブジェクトを削除することができます。
この例では、プロジェクト内のユーザーを削除します。
Code Block |
---|
curl -H "Accept: application/json" -s -u http://[admin-url]/project_users/[username],[project_id] -X DELETE |
Resetting Password
...
パスワードのリセット
この本文と正しいユーザー名を含むjsonリクエストを “/password/request_reset" with this body and a correct username will start the reset password process. The user will get a password reset request on email with a token:reset”にポストすると、パスワードのリセット処理が開始されます。ユーザーはトークン付きのパスワードリセットリクエストをメールで受け取ります:
Code Block | ||
---|---|---|
| ||
// Post to {server}/password/request_reset { "username": "user" } |
To actually change the password use the following json with the token from the email:実際のパスワード変更には、メールに記載されたトークンと以下のjsonを使用します:
Code Block |
---|
// Post to {server}/password/reset { "token": "5f2pi2zW7wO3nodwWznmDQ", "password": "pass", "password_confirm": "pass" } |
...
プロジェクトの統計
Resourceリソース | Commentコメント |
---|---|
/project_dataGives project | statistics over time長期にわたるプロジェクトの統計 |
/project_data/latest | Gives you the latest project statistics for each project |
...
各プロジェクトの最新の統計情報を提供 |
フィルタ
from_date=[date] | Only for /project_data, gives you only data where time is greater than the given dateproject_dataにのみ適用され、時刻が指定された日付より大きい |
field=[field]Only | for specific field特定のフィールドのみ |
owner=[owner_id] | Only for specific owner id |
...
特定の所有者 idのみ | |
出力の例
Code Block |
---|
{ "field": "sum_programmed_area", "project_id": 1262, "time": "2019-12-16T10:56:46.848+01:00", "value": "1233.0" }, { "field": "sum_designed_area", "project_id": 1262, "time": "2019-12-16T10:56:46.848+01:00", "value": "1176.0" }, |
...