BioStar 2のNew Local APIをRESTful APIとしてカスタマイズなどに利用したい場合は、この記事を参考にしてください。この記事では、BioStar 2のNew local APIを使用して、アクセスグループからユーザーを追加または削除する方法を説明します。


APIの詳細については、 https://bs2api.biostar2.com/#intro を参照してください。


新規アクセスグループの作成


POST Create New AG

https://127.0.0.1/api/access_groups


このリクエストは、新しいアクセスグループ(AG)を作成するために使用されます。

パラメータは以下の通りです。


ParameterTypeRequiredDescription
nameStringYAGの名前。ユニークでなければならない
descriptionStringNAGの説明
usersNumberNAGのユーザーID一覧
user_groupNumberNAGのユーザーグループID一覧
access_levelsNumberNAGのアクセスレベルIDのリスト
floor_levelsNumberNAGのフロアレベルIDのリスト


数値(idなど)の場合、値をクォートに入れるかどうかは自由です。


既知のエラー:

  • エンドポイントの末尾に「/」をつける
  • name は必須かつユニークなパラメータです


Request Body

 {
    "AccessGroup": {
        "name": "access_group_test",
        "description": ""
        "users": [
            {
                "user_id": 1750
            }
        ],
        "user_groups": [
            {
                "id": 10871
            }
        ],
        "access_levels": [
            {
                "id": 53
            }
        ],
        "floor_levels": [],
    }
}



アクセスグループの更新


PUT Update an AG

https://127.0.0.1/api/access_groups/:id


ParameterTypeRequiredDescription
nameStringN
AGの名前。ユニークでなければならない
descriptionStringNAGの説明
new_usersArrayNAGに追加されるユーザーIDのリスト
delete_usersArrayNAGから削除するユーザーIDのリスト
user_groupNumberNAGのユーザーグループID一覧
access_levelsNumberNAGのアクセスレベルIDのリスト
floor_levelsNumberNAGのフロアレベルIDのリスト 

既知のエラー:

  • Repeating the same value on parameter with multiple options



1. 既存のAccess Groupにユーザーを追加する

 {
    "AccessGroup": {
        "user_groups": [
            {
                "id": 10871,
                "name": "User Group 1"
            }
        ],
        "new_users": [
            {
                "user_id": 1753
            },
            {
                "user_id": 1749
            }
        ]
    }
}


2. 既存のアクセスグループからユーザーを削除する

 {
    "AccessGroup": {
        "user_groups": [
            {
                "id": 10871,
                "name": "User Group 1"
            }
        ],
        "delete_users": [
            {
                "user_id": 1753
            },
            {
                "user_id": 1750
            }
        ]
    }
}

3. ユーザーの追加と削除を同時に行う

 {
    "AccessGroup": {
        "user_groups": [
            {
                "id": 10871,
                "name": "User Group 1"
            }
        ],
        "new_users": [
            {
                "user_id": 1750
            },
            {
                "user_id": 1753
            }
        ],
        "delete_users": [
            {
                "user_id": 1749
            }
        ]
    }
}


4. アクセスグループへのユーザーグループの追加・削除

この例では、ID 10871の「User Group 1」がすでにAccess Groupに割り当てられています。
  • ユーザーグループの追加・削除を行うと、それまでのデータが削除され、入力されたデータが追加されます。

    例:既存のUser Group 1があり、アップデート時にuser_groupパラメータにUser Group 2のみを指定した場合、Access GroupからUser Group 1が削除され、User Group 2のみが残る。

  • ユーザーグループを追加する場合は、現在のユーザーグループを指定する必要があります。追加だけを行うと、以前のデータはすべて削除されます。
  • レコードの更新をスキップするには、そのパラメーターをスキップします。以下の例では、ユーザーは更新されません。


例1:既存のAccess GroupからUser Group 2を追加する場合。

 {
    "AccessGroup": {
        "user_groups": [
            {
                "id": 10871,
                "name": "User Group 1"
            },
            {
                "id": 10872,
                "name": "User Group 2"
            }
        ]
    }
}

例2: 既存のAcess GroupからUser Group 2を削除する場合。 

{
    "AccessGroup": {
        "user_groups": [
            {
                "id": 10871,
                "name": "User Group 1"
            }
        ]
    }
}

例3:User Group 1を削除し、User Group 2を追加する場合。 

{
    "AccessGroup": {
        "user_groups": [
            {
                "id": 10872,
                "name": "User Group 2"
            }
        ]
    }
}