Skip to main content
Skip table of contents

管理システム REST API

これは、RESTコール (GET, POST, PUT, PATCH, DELETE) を使用して管理システムと対話する可能性を文書化したもので、プロジェクトやユーザーの作成などのタスクの自動化を可能にします。

すべての例はcurl ユーティリティを使用して作成されています。

一般

認証

システムはベーシック認証を使っています。ログインには管理システムユーザーが必要で、通常のWEBアクセスと同じユーザー名とパスワードの組み合わせでログインできます。

データ形式とURL

すべてのリソースは、HTML、XML、JSON形式でアクセスできます。

これは通常のREST APIとは別のAPIで、ベースURLはアクセスしようとしている管理システム (つまり https://adm-us.drofus.com/) と同じでなければなりません。

例えば、http://[admin-url]/projects のリンクは、通常のHTMLのプロジェクト一覧を表示し、http://[admin-url]/projects. はJSON形式でプロジェクトとプロジェクトユーザーを表示します。

一部のリソース (特にユーザー) はリソース名にドット(.)を含んでいるため、.jsonは使用できません。代わりに必ずヘッダーに "Accept: application/json"を送ってください
(これはすべてのタイプのクライアント (例えばpostmanなど) に当てはまります) 。

Accept ヘッダーを "application/json" に設定すると、json 形式でレスポンスを取得するのに推奨される方法です。 .json はテスト時にのみ使用してください。

コードブロック

CODE
curl -H "Accept: application/json" -s -u testadmin:testpw http://[admin-url]/users/hakonhc

以下のようになります。

コードブロック

CODE
curl -s -u testadmin:testpw http://[admin-url]/users/hakonhc.json

リソース:

リソース説明
/projectsプロジェクトのリストと操作
/ownersプロジェクト所有者のリスト
/usersサーバー上のユーザーの一覧表示と操作
/databaseデータベースの一覧表示と操作
/project_usersプロジェクトにおけるユーザーの一覧表示と操作

多くのリソースは、GET、PATCH、DELETEの両方に応答します。

さらに、以下のような特別なエンドポイントもあります:

リソース説明
/node/logins過去5年間のプロジェクトのログイン統計を、使用したクライアントの種類 (Revit、dRofusなど) でグループ化して取得します。
/node/logins?from_date=2018-01-01&to_date=2019-12-31指定された期間のプロジェクトのログイン統計を、使用されているクライアントの種類 (Revit、dRofusなど) ごとにグループ化して取得します。
/node/unique_users過去5年間の各プロジェクトの一意なユーザー数を取得。
/node/unique_users?from_date=2018-01-01&to_date=2019-12-31指定された期間における各プロジェクトの一意なユーザー数を取得します。
/project_data?from_date=2018-01-01&to_date=2019-12-31プロジェクトの統計値を取得、to_dateとfrom_dateは日付のオプション制限です。
/password/request_reset有効なユーザー名でのリクエストは、パスワードリセットの電子メールをトリガーします。
/password/resetAPIでパスワードを変更するには、トークンとともにこれを使用します。

GET リソース:リスト

リソース説明パラメータ
/projectsすべてのプロジェクトをリスト

?query=xxは、プロジェクト名にxxが含まれるすべてのプロジェクトを一覧表示します。

?show_all=1で非アクティブなプロジェクトも表示します。

/projects/1id 1のプロジェクトをリスト
/ownersすべての所有者をリスト
/owners/1所有者をID 1でリスト
/users全ユーザーのリスト

query=xxで検索。

/users/usernameユーザー名でユーザーをリスト
/databaseデータベース一覧
/project_users/username,projectidプロジェクトユーザーを表示






コードブロック

CODE
$ 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リソース:オブジェクトの作成

これにより、"Test "という名前のオーナーが作成され、ID 11が割り当てられていることがわかります。

コードブロック

CODE
$ 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 /プロジェクト)

新しいプロジェクトを作成するには、いくつかの特別なパラメータが必要です。新しいプロジェクトを作成する際に、最低限必要なデータは以下の通りです。

パラメータ説明
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 │ 名前
─┼────────────────────
1 │ Active Project (有効なプロジェクト)
2 │ Deprecated Project (現在休止中のプロジェクト)
3 │ Demo (デモ)
4 │ Copy / Backup (コピー/バックアップ)
5 │ Template (テンプレート)
6 │ Sandbox / Test (サンドボックス/テスト)
7 │ Training (トレーニング)
8 │ Trial (トライアル)


すべてのパラメータは必須です。

コードブロック

CODE
{
  "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
$ 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"}}

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"
}
パラメータ説明
project_user

project_id: 追加するプロジェクトのID

room_rights: 部屋の権限レベル

equipment_rights

tender_rights

consignation_rights

system_rights

modelstore_rights

superuser. プロジェクト管理者

addon_admin: BIM管理者

no_web_admin_access: ユーザーがスーパーユーザーの場合、ウェブ管理者へのアクセスを拒否する。

hide_price: ユーザーが価格を確認する際に真または偽を指定。

user

username: 追加するユーザーのユーザー名。

first_name: 追加するユーザーの名前。

last_name: 追加するユーザーの姓。

email: 追加するユーザーの電子メール。

ユーザーが存在する場合、与えられた情報がサーバーに登録されている情報と同じであることを確認します。

mail_typeユーザーに送信するメールのID (/emailsより)。"skip_email "はメールを送信しないことを意味します。

GETリソース: オブジェクト操作など

データベース

リソース
/database/[dbname]/disablealldbnameという名前のデータベース内のすべてのプロジェクトユーザーを無効にする。
/database/[dbname]/enablealldbname という名前のデータベース内のすべてのプロジェクト・ユーザーを有効にする。
/database/[dbname]/kickalldbname という名前のデータベース内のすべてのユーザーをログアウトする。
/database/[dbname]/get_backup_nowデータベースのバックアップをダウンロードする。


ユーザー

リソース
/users/[username]/disableプロジェクトにログインできないようにユーザーを無効にする。
/users/[username]/enableユーザーを有効にする。
/users/[username]/kickデータベースxxxのすべてのユーザーをログアウトする。
POST /users/[username]/toggle_otpユーザーが多要素認証を使用してログインするかどうかを切り替えます。
POST /users/[username]/toggle_force_webloginモダンログイン/SSOを使用してログインするかどうかを切り替えます。

POST リソース:トグルとその他の変更

ユーザー

リソース
/users/[username]/toggle_otpユーザーが多要素認証を使用してログインするかどうかを切り替えます。
/users/[username]/toggle_force_webloginモダンログイン/SSOを使用してログインするかどうかを切り替えます。

PUT/PATCHリソース 最新情報

リソース
/projects/[id]プロジェクトの更新
/project_users/username,projectidプロジェクトユーザーの更新

例1:プロジェクトの更新

コードブロック

CODE
$ 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

data.jsonに含まれる内容

CODE
{
  "project": {
    "name": "REST TEST",
    "description": "TEST UPDATE FROM REST",
	"active":true
  }
}

例 2: プロジェクトユーザーを更新

コードブロック

CODE
$ 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

data.jsonに含まれる内容

コードブロック

CODE
{
  "project_user":{
	"username":"test",
	"project_id":647,
	"room_rights":1,
	"equipment_rights":3,
	"tender_rights":4,
	"room_surface_treatment_rights":4
  }
}

リソースを削除

また、削除オペレーション (DELETE operation )を使用して、ほとんどのオブジェクトを削除することができます。

この例では、プロジェクト内のユーザーを削除します。

コードブロック

CODE
curl -H "Accept: application/json" -s -u http://[admin-url]/project_users/[username],[project_id] -X DELETE

パスワードのリセット

この本文と正しいユーザ名を使用して "/password/request_reset" に json リクエストを投稿すると、パスワードのリセット処理が開始されます。
ユーザーには、トークン付きのパスワード再設定リクエストが電子メールで送信されます:

コードブロック

JS
// Post to {server}/password/request_reset
{
	"username": "user"
}

実際にパスワードを変更するには、メールに記載されたトークンを使って以下のjsonを使用します:

コードブロック

CODE
// Post to {server}/password/reset
{
	"token": "5f2pi2zW7wO3nodwWznmDQ",
	"password": "pass",
	"password_confirm": "pass"
}

プロジェクトの統計

リソースコメント
/project_data長期にわたるプロジェクトの統計を提供。
/project_data/latest各プロジェクトの最新の統計情報を提供します。

フィルタ



from_date=[date]project_dataに限り、時刻が指定された日付より大きいデータのみを表示する。
field=[field]特定フィールドのみ。
owner=[owner_id]特定の所有者IDのみ。


出力の例

CODE
{
"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"
},


JavaScript errors detected

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

If this problem persists, please contact our support.