Open API
概要
SERVICEME Open API 呼び出しの基本的な流れ:
第一歩、認証章で提供されるインターフェースを使用して認証を行い、access tokenを取得する
認証は2種類に分かれます。1つはユーザー認証、もう1つはクライアント認証です。
- ユーザー認証:個人アカウントの身分に基づく認証方法。
- クライアント認証:SERVICEMEが発行したクライアントcodeとsecretを用いた認証方法。
第二歩、access tokenを携帯して対応するAPIを呼び出す
認証方式
ユーザーAAD認証
この方式はユーザー認証の一種であり、AADのaccess tokenを身分認証の根拠として使用します。
-
AAD access token 取得方法:
AAD と React 統合ドキュメント:前往->
AAD と .Net 統合ドキュメント:前往->
AAD と Java 統合ドキュメント:前往->
-
インターフェースアドレス:
/openapi/auth/user/aad -
リクエスト方式:
post -
リクエストbody:
| パラメータ名 | 必須 | タイプ | パラメータ説明 |
|---|---|---|---|
| token | はい | string | ユーザーAAD access token(連携先が提供) |
- インターフェースリクエスト例:
curl --location 'https://localhost/openapi/auth/user/aad' \
--header 'Content-Type: application/json' \
--data '{
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IlhSdmtvOFA3QTNVYVdTblU3Yk05blQwTWpoQSJ9.eyJhdWQiOiIzZTEwNjVhYS1jZWYxLTRiYTgtOWRiOS1kMWQ1Y2UzMGYyZDgiLCJpc3MiOiJodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vNDRjMjRmNDItZDQ5Yi00MT......"
}'
- レスポンスbody:
| パラメータ名 | サブパラメータ | タイプ | パラメータ説明 |
|---|---|---|---|
| data | object | レスポンスデータ | |
| access_token | string | SERVICEMEシステムのaccess token | |
| expires_in | number | 有効期限(分単位) | |
| success | boolean | 成功したかどうか | |
| msg | string | successがfalseの場合にエラーメッセージが入る |
- レスポンス例:
{
"data": {
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc0V4dGVybmFsIjpmYWxzZSwidXNlcklkIjoiNDAzMDUwMjEwMTEyODgzOTE2OCIsImFjY291bnQiOiJlY210cmlhbEBzZXJ2aWNlbWUub25taWNyb3NvZ......",
"expires_in": 1440
},
"success": true,
"msg": ""
}
クライアントとユーザーアカウント認証
この認証方式はクライアント認証とユーザーアカウント認証を組み合わせたものです。ユーザーアカウントで身分認証を行い、同時にクライアント資格情報(client idとsecret)を使用してインターフェース呼び出しの安全性を確保します。このインターフェースを呼び出す際には署名検証が必要です。
- clientとsecretはどうやって取得する?
システム管理者はクライアント管理画面{domain}#/super-admin/client-managementで資格情報を作成し、作成後にclient idとsecretを取得できます。
-
インターフェースアドレス:
/openapi/auth/client_with_account -
リクエスト方式:
post -
リクエストbody:
| パラメータ名 | 必須 | タイプ | パラメータ説明 |
|---|---|---|---|
| client | はい | string | クライアントId |
| account | はい | string | ユーザーアカウント(ユーザー管理のUserNameに対応) |
| timestamp | はい | number | タイムスタンプ(13桁の数字、ミリ秒単位の精度、例:1711537596897) |
| nonce | はい | string | 6桁のランダム文字列(数字または英字の組み合わせ可) |
| signature | はい | string | 署名、5分以内有効(署名フォーマット:コロンで連結した後にMD5 client:{client}secret:{secret}account:{account}timestamp:{timestamp}nonce:{nonce} を計算し、MD5の32桁小文字文字列) |
-
javascript署名例:
新規にhtmlファイルを作成し、以下の内容を貼り付けてブラウザで開いてください
<html>
<head>
<style>
.box {
width: 100%;
height: 100%;
padding: 50px 50px;
}
.row {
display: flex;
height: 50px;
width: 100%;
}
.col1 {
flex: 1;
}
.col2 {
flex: 3;
}
</style>
</head>
<body>
<div class="box">
<div class="row">
<div class="col1">client:</div>
<div class="col2" id="client"></div>
</div>
<div class="row">
<div class="col1">secret:</div>
<div class="col2" id="secret"></div>
</div>
<div class="row">
<div class="col1">account:</div>
<div class="col2" id="account"></div>
</div>
<div class="row">
<div class="col1">timestamp:</div>
<div class="col2" id="timestamp"></div>
</div>
<div class="row">
<div class="col1">nonce:</div>
<div class="col2" id="nonce"></div>
</div>
<div class="row">
<div class="col1">signature:</div>
<div class="col2" id="signature"></div>
</div>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.0.0/crypto-js.min.js"></script>
<script>
const client = "openapi"
const secret = "DzYwyICrKbUCEseYthCK0PfSfX7NPEuV"
const account = "test@serviceme.com"
const timestamp = +new Date()
const nonce = "123abc"
const message = `client:${client}secret:${secret}account:${account}timestamp:${timestamp}nonce:${nonce}` // 署名の原文
const md5Hash = CryptoJS.MD5(message).toString().toLowerCase(); // MD5 32桁小文字変換
console.log(`署名原文:${message}`)
console.log(`署名結果:${md5Hash}`)
document.getElementById('client').innerText = client;
document.getElementById('secret').innerText = secret;
document.getElementById('account').innerText = account;
document.getElementById('timestamp').innerText = timestamp;
document.getElementById('nonce').innerText = nonce;
document.getElementById('signature').innerText = md5Hash;
</script>
</body>
</html> -
インターフェースリクエスト例:
curl --location 'https://localhost/openapi/auth/client_with_account' \
--header 'Content-Type: application/json' \
--data '{
"client": "openapi",
"account": "test@serviceme.com",
"timestamp": 1711537596456,
"nonce": "123abc",
"signature": "182be0c5cdcd5072bb1864cdee4d3d6e"
}'
- レスポンスbody
| パラメータ名 | サブパラメータ | タイプ | パラメータ説明 |
|---|---|---|---|
| data | object | レスポンスデータ | |
| access_token | string | SERVICEMEシステムのaccess token | |
| expires_in | number | 有効期限(分単位) | |
| success | boolean | 成功したかどうか | |
| msg | string | successがfalseの場合にエラーメッセージが入る |
- インターフェースレスポンス例:
{
"data": {
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc0V4dGVybmFsIjpmYWxzZSwidXNlcklkIjoiNDAzMDUwMjEwMTEyODgzOTE2OCIsImFjY291bnQiOiJlY210cmlhbEBzZXJ2ub25ta......",
"expires_in": 1440
},
"success": true,
"msg": ""
}
チャット
Agentへメッセージを送信
-
インターフェースアドレス:
/openapi/chat/expert -
リクエスト方式:
post -
リクエストheader:
| パラメータ名 | 必須 | タイプ | パラメータ説明 |
|---|---|---|---|
| Authorization | はい | string | SERVICEME access tokenを記入、値の形式:openapi {access_token} |
- リクエストbody:
| パラメータ名 | 必須 | タイプ | パラメータ説明 |
|---|---|---|---|
| expertCode | はい | string | SERVICEMEシステム内のAgentコード(SERVICEMEシステム参照) |
| content | はい | string | 質問内容 |
| sessionId | いいえ | string | セッションID、チャットコンテキストを表す。nullを渡すと新しいセッションを開始。新しいセッションIDはレスポンスで返され、2回目以降の質問からは前回返されたsession idを携帯して続行する必要がある |
| stream | いいえ | boolean | ストリーミングを有効にするか(true:有効;false:無効)、デフォルトは無効 |
| includeThought | いいえ | boolean | レスポンスに思考を含めるか(true:含む;false:含まない) |
| language | いいえ | object | 今回のチャットの言語設定 |
| language.chatLanguage | いいえ | string | AIにどの言語で回答してほしいか。空の場合はAIが自動判断 |
| language.systemLanguage | いいえ | string | セッションの基本言語。プラグイン名やプロンプトに影響するが、AIの回答には影響しない。空の場合はen-US。chatLanguageが指定されるとchatLanguageが優先される |
質問コードはどうやって取得する? 下図を参照してください:
- リクエスト例:
curl --location 'https://localhost/vee/openapi/chat/expert' \
--header 'Authorization: openapi {access_token}' \
--header 'Content-Type: application/json' \
--data '{
"expertCode": "CHATES",
"content": "加班申请",
"sessionId": null,
"stream": false,
"includeThought": true,
"language": { "chatLanguage" : null, "systemLanguage" : "zh-CN"}
}'
- レスポンスbody:
| パラメータ名 | サブパラメータ | サブサブパラメータ | 4階層目 | タイプ | パラメータ説明 |
|---|---|---|---|---|---|
| data | object | レスポンスデータ | |||
| chatRecordId | string | 会話記録ID | |||
| sessionId | string | セッションID | |||
| content | string | テキスト形式の回答情報 | |||
| medias | object | メディア形式の回答情報配列(画像やファイルなど) | |||
| type | string | image:画像;file:ファイル | |||
| name | string | 名称 | |||
| suggestionQuestions | array string | 推奨質問 | |||
| thoughts | array | 思考 | |||
| thought | string | 思考内容 | |||
| pluginName | string | プラグイン名 | |||
| elapsedTime | object | プラグイン処理時間情報 | |||
| model | float | モデル処理時間 | |||
| action | float | アクション処理時間 | |||
| total | float | 合計処理時間 | |||
| state | string | 状態(success:成功) | |||
| finish_reason | string | 回答終了かどうか。stopの場合は終了、回答中はnull | |||
| success | boolean | 成功したかどうか | |||
| msg | string | successがfalseの場合にエラーメッセージが入る |
- 非ストリーミングレスポンス例:
{
"data": {
"chatRecordId": "4299234148041625600",
"sessionId": "4292755814873047040",
"content": "チームリーダーは作業タスクを発行し、完了ノードや検収基準を明確にします。従業員は上司と合意した後に残業可能です。残業終了後、従業員は工数システムに残業時間を記入し、システムで残業申請を提出します。備考には残業タスクを明確に記載し、勤務場所での出退勤記録を完全に記録します。チームリーダー/上司が残業成果を検収し、残業申請を承認します。HRは打刻記録を確認後、代休休暇の計算を行います。",
"medias": [
{
"type": "image",
"name": null,
"url":"http://localhost:3978/openapi/chat/media/image/FE680A9CCFB1B56E80737FB28562DC33F4A37DEF52A65F046464788B83E0BE77"
},
{
"type": "file",
"name": "答案参考文件.pdf",
"url":"https://localhost/#/share/preview?fileId=4268457334348447744&objectType=2&previewType=file&mode=login"
},
],
"suggestionQuestions": [],
"thoughts": [
{
"thought": "この質問に答えるために、ナレッジベースの関連情報を検索する必要があります。",
"pluginName": "Search Knowledgebase",
"elapsedTime": {
"model": 3612.4722,
"action": 689.5891,
"total": 4302.0613
},
"state": "success"
}
],
"finish_reason": "stop"
},
"success": true,
"msg": ""
}
- ストリーミングレスポンス例:
data: {"data":{"chatRecordId":"4299228743576059904","sessionId":"4292755079242457089","content":"","medias":[],"suggestionQuestions":[],"thoughts":[{"thought":"この質問に答えるために、ナレッジベースの関連情報を検索する必要があります。","pluginName":"Search Knowledgebase","elapsedTime":{"model": 3612.4722,"action": 689.5891,"total": 4302.0613},"state": "success"}],"finish_reason":null},"success":true,"msg":""}
data: {"data":{"chatRecordId":"4299228743576059904","sessionId":"4292755079242457089","content":"チームリーダーは作業タスクを発行し、完了ノードや検収基準を明確にします。従業員は上司と合意した後に残業可能です。残業終了後、従業員は工数システムに残業時間を記入し、システムで残業申請を提出します。備考には残業タスクを明確に記載し、勤務場所での出退勤記録を完全に記録します。チームリーダー/上司が残業成果を検収し、残業申請を承認します。HRは打刻記録を確認後、代休休暇の計算を行います。","medias":[],"suggestionQuestions":[],"thoughts":[],"finish_reason":null},"success":true,"msg":""}
data: {"data":{"chatRecordId":"4299228743576059904","sessionId":"4292755079242457089","content":"","medias":[{"type":"image","name":null,"url":"http://localhost:3978/openapi/chat/media/image/FE680A9CCFB1B56E80737FB28562DC33F4A37DEF52A65F046464788B83E0BE77"}],"suggestionQuestions":[],"thoughts":[],"finish_reason":null},"success":true,"msg":""}
data: {"data":{"chatRecordId":"4299228743576059904","sessionId":"4292755079242457089","content":"","medias":[{"type":"file","name":"答案参考文件.pdf","url":"https://localhost/#/share/preview?fileId=4268457334348447744&objectType=2&previewType=file&mode=login"}],"suggestionQuestions":[],"thoughts":[],"finish_reason":"stop"},"success":true,"msg":""}
会話の参考資料を取得
-
インターフェースアドレス:
/openapi/chat/record/{chatRecordId}/reference -
リクエスト方式:
get -
リクエストheader:
| パラメータ名 | 必須 | タイプ | パラメータ説明 |
|---|---|---|---|
| Authorization | はい | string | SERVICEME access tokenを記入、値の形式:openapi {access_token} |
- リクエストurlパラメータ:
| パラメータ名 | 必須 | タイプ | パラメータ説明 |
|---|---|---|---|
| chatRecordId | はい | string | 質問応答インターフェースのchatRecordIdフィールドの値 |
- リクエスト例:
curl --location 'http://localhost/openapi/chat/record/4299234148041625600/reference' \
--header 'Authorization: openapi {access_token}'
- レスポンスbody:
| パラメータ名 | サブパラメータ | タイプ | パラメータ説明 |
|---|---|---|---|
| data | object array | レスポンスデータ | |
| title | string | タイトル | |
| content | string | 会話記録で引用された断片内容 | |
| score | float | 関連度(0から1、1に近いほど関連性が高い) | |
| url | string | リンク(現在はファイルタイプの引用のみリンクあり) | |
| type | string | タイプ列挙:document(文書)、image(画像)、QnA、other | |
| success | boolean | 成功したかどうか | |
| msg | string | successがfalseの場合にエラーメッセージが入る |
- レスポンス例:
```json
{
"data": [
{
"title": "会社の行政制度.pdf",
"content": "断片一 ......",
"score": 0.95,
"url": "https://localhost/#/share/preview?fileId=4268457334348447744&objectType=2&previewType=file&mode=login",
"type": "document"
},
{
"title": "会社の行政制度.pdf",
"content": "断片二 ......",
"score": 0.81,
"url": "https://localhost/#/share/preview?fileId=4268457334348447744&objectType=2&previewType=file&mode=login",
"type": "document"
},
{
"title": "会社の行政制度.pdf",
"content": "断片三 ......",
"score": 0.76,
"url": "https://localhost/#/share/preview?fileId=4268457334348447744&objectType=2&previewType=file&mode=login",
"type": "document"
}
],
"success": true,
"msg": ""
}
Botインターフェース
Bot作成インターフェース
基本情報
- リクエスト方式:POST
- インターフェースURL:
/openapi
リクエストパラメータ
| パラメータ名 | タイプ | 説明 |
|---|---|---|
| code | String | Botコード、一意、最大長50 |
| cover | String | カバー画像パス(任意) |
| names | Array(TranslationInfo) | 名前の多言語対応、必須;各要素は languageCode、content を含む |
| welcomes | Array(TranslationInfo) | ウェルカムメッセージの多言語対応;各要素は languageCode、content(システム制限あり)を含む |
| descriptions | Array(TranslationInfo) | 説明の多言語対応;上記と同様 |
| historyRecordNumber | Number | 履歴メッセージの最大件数 |
| feedback | Boolean | フィードバックの有効化 |
| recoreChat | Boolean | 会話の記録有無 |
| useSuggestedQuestions | Boolean | 推奨質問の有効化 |
| useKnowledgeBase | Boolean | ナレッジベースの有効化 |
| sort | Number | ソート順 |
| chatModelId | Number(Int64) | チャットモデルID |
| chatPrompt | String | チャットシステムのプロンプト |
| temperature | Number | 温度係数(0〜2) |
| topP | Number | TopP(0〜1) |
| tools | Array(BotPluginToolVO) | ボットツールリスト(各項目は少なくとも id=プラグインIDを含む) |
| knowledgeInfo | Object(BotKnowledgeVO) | ナレッジベース設定、例:workspaces: Array(Int64) ワークスペースIDリスト |
| dataSources | Array(String) | データソース識別子集合 |
リクエストパラメータ例(Body):
{
"code": "qa-bot",
"cover": "/images/bots/qa.png",
"names": [
{ "languageCode": "zh-CN", "content": "问答机器人" },
{ "languageCode": "en-US", "content": "Q&A Bot" }
],
"welcomes": [
{ "languageCode": "zh-CN", "content": "您好!我可以帮您解答问题。" },
{ "languageCode": "en-US", "content": "Hi! I can help answer your questions." }
],
"descriptions": [
{ "languageCode": "zh-CN", "content": "用于通用问答的机器人" },
{ "languageCode": "en-US", "content": "A bot for general Q&A" }
],
"historyRecordNumber": 10,
"feedback": true,
"recoreChat": true,
"useSuggestedQuestions": false,
"useKnowledgeBase": true,
"sort": 1,
"chatModelId": 4493000000000000001,
"chatPrompt": "你是一个专业助手,请用简体中文回答用户问题。",
"temperature": 0.7,
"topP": 0.95,
"tools": [
{ "id": 4488000000000001001 },
{ "id": 4488000000000001002 }
],
"knowledgeInfo": {
"workspaces": [4493061452348784640, 4493061452348784641]
},
"dataSources": ["kb", "faq"]
}
cURL例:
curl -X POST "https://<host>/openapi" ^
-H "Content-Type: application/json" ^
-H "Authorization: Bearer <token>" ^
-d "{ \"code\": \"qa-bot\", \"names\": [ { \"languageCode\": \"zh-CN\", \"content\": \"问答机器人\" } ], \"welcomes\": [ { \"languageCode\": \"zh-CN\", \"content\": \"您好!\" } ], \"descriptions\": [ { \"languageCode\": \"zh-CN\", \"content\": \"用于通用问答的机器人\" } ], \"historyRecordNumber\": 10, \"feedback\": true, \"recoreChat\": true, \"useSuggestedQuestions\": false, \"useKnowledgeBase\": true, \"sort\": 1, \"chatModelId\": 4493000000000000001, \"chatPrompt\": \"你是一个专业助手。\", \"temperature\": 0.7, \"topP\": 0.95, \"tools\": [ { \"id\": 4488000000000001001 } ], \"knowledgeInfo\": { \"workspaces\": [4493061452348784640] }, \"dataSources\": [\"kb\"] }"
注:
codeはグローバルに一意である必要があります。重複するとエラーが返されます。
レスポンス
| パラメータ名 | タイプ | 説明 |
|---|---|---|
| data | String | 新規作成されたボットID |
| success | Boolean | インターフェース呼び出し結果(true=成功、false=失敗) |
| msg | String | メッセージ |
レスポンス例:
{ "data": "4493061452348784640", "success": true, "msg": "" }
## ファイルスペース
### 単一ファイルアップロード
- **インターフェースURL:**```v1/openapi/workspace/file/upload```
- **リクエスト方式:**```post```
- **リクエストヘッダー:**
| パラメータ名 | 必須 | タイプ | 説明 |
| ------------- | ---- | ------ | ------------------------------------------------------------ |
| Authorization | は | string | SERVICEMEアクセストークンを記入、形式:openapi `{access_token}` |
- **Content Type:**```form-data```
- **リクエストボディ:**
| パラメータ名 | 必須 | タイプ | 説明 |
| ------------------ | ---- | ------ | -------------------------------------- |
| workspace | は | string | ファイルスペース |
| file | は | file | ファイル(単一) |
| eponymousCover | 任意 | bool | 同名ファイルが存在する場合に上書きするか(デフォルトは上書きしない) |
- **リクエスト例:**
```shell
curl --location 'http://localhost/v1/openapi/workspace/file/upload' \
--header 'Authorization: openapi {access_token}' \
--form 'workspace="テストスペース"' \
--form 'file=@"/C:/test.doc"' \
--form 'eponymousCover="false"'
- レスポンスボディ:
| パラメータ名 | サブパラメータ | タイプ | 説明 |
|---|---|---|---|
| data | object | レスポンスデータ | |
| fileId | string | ファイルID | |
| fileName | string | ファイル名 | |
| uploader | string | アップロード者 | |
| success | boolean | 成功したかどうか | |
| msg | string | successがfalseの場合、エラーメッセージが入る |
- レスポンス例:
{
"data": {
"fileId": "4345229404125790208",
"fileName": "test.doc",
"uploader": "test@serviceme.com"
},
"success": true,
"msg": ""
}
ファイルスペース
複数ファイルアップロード
ファイル提出
-
インターフェースURL:
v1/openapi/workspace/file/upload/batchSubmit -
リクエスト方式:
post -
リクエストヘッダー:
| パラメータ名 | 必須 | タイプ | 説明 |
|---|---|---|---|
| Authorization | は | string | SERVICEMEアクセストークンを記入、形式:openapi {access_token} |
- Content Type:
form-data - リクエストボディ:
| パラメータ名 | 必須 | タイプ | 説明 |
|---|---|---|---|
| workspace | は | string | ファイルスペース |
| files | は | file | ファイル(複数) |
| eponymousCover | 任意 | bool | 同名ファイルが存在する場合に上書きするか(デフォルトは上書きしない) |
- リクエスト例:
curl --location 'http://localhost/v1/openapi/workspace/file/upload/batchSubmit' \
--header 'Authorization: openapi {access_token}' \
--form 'workspace="テストスペース"' \
--form 'files=@"/C:/test1.doc"' \
--form 'files=@"/C:/test2.docx"' \
--form 'eponymousCover="false"'
- レスポンスボディ:
| パラメータ名 | サブパラメータ | タイプ | 説明 |
|---|---|---|---|
| data | object | レスポンスデータ | |
| stateId | string | アップロード状態ID。これを使って最新のアップロード結果をポーリング可能 | |
| success | boolean | 成功したかどうか | |
| msg | string | successがfalseの場合、エラーメッセージが入る |
- レスポンス例:
{
"data": {
"stateId": "4345229404125790208"
},
"success": true,
"msg": ""
}
アップロード結果の照会
-
インターフェースURL:
v1/openapi/workspace/file/upload/batchSubmit/{stateId} -
リクエスト方式:
get -
リクエストヘッダー:
| パラメータ名 | 必須 | タイプ | 説明 |
|---|---|---|---|
| Authorization | は | string | SERVICEMEアクセストークンを記入、形式:openapi {access_token} |
- URLパラメータ:
| パラメータ名 | 必須 | タイプ | 説明 |
|---|---|---|---|
| stateId | は | string | 複数ファイル提出アップロードインターフェースから返されたstateId |
- リクエスト例:
curl --location 'http://localhost/v1/openapi/workspace/file/upload/batchSubmit/4345227891722682368' \
--header 'Authorization: openapi {access_token}'
- レスポンスボディ:
| パラメータ名 | サブパラメータ | タイプ | 説明 |
|---|---|---|---|
| data | object配列 | レスポンスデータ | |
| fileId | string | ファイルID | |
| fileName | string | ファイル名 | |
| state | string | 状態列挙:underway(処理待ち)、success(成功)、fail(失敗) | |
| uploader | string | アップロード者 | |
| errorMsg | string | 状態がfailの場合、失敗理由が格納される | |
| finishTime | string | ファイル処理完了時間 | |
| success | boolean | 成功したかどうか | |
| msg | string | successがfalseの場合、エラーメッセージが入る |
- レスポンス例:
{
"data": [
{
"fileId": "4345227925730099200",
"fileName": "test1.doc",
"state": "success",
"uploader": "test@serviceme.com",
"errorMsg": "",
"finishTime": "2024-08-17T05:04:30.0128596Z"
},
{
"fileId": "4345227924266287104",
"fileName": "test2.docx",
"state": "success",
"uploader": "test@serviceme.com",
"errorMsg": "",
"finishTime": "2024-08-17T05:04:29.7952274Z"
}
],
"success": true,
"msg": ""
}
QnA作成
-
インターフェースURL:
v1/openapi/workspace/qna/create -
リクエスト方式:
post -
リクエストヘッダー:
| パラメータ名 | 必須 | タイプ | 説明 |
|---|---|---|---|
| Authorization | は | string | SERVICEMEアクセストークンを記入、形式:openapi {access_token} |
- リクエストボディ:
| パラメータ名 | サブパラメータ | 必須 | タイプ | 説明 |
|---|---|---|---|---|
| workspace | は | string | ファイルスペース | |
| questions | は | string配列 | 質問配列、複数可 | |
| answer | は | string | 答え | |
| metadatas | 任意 | object配列 | メタデータ | |
| typeCode | は | string | メタデータタイプ | |
| content | は | string | 内容 |
- リクエスト例:
curl --location 'http://localhost/v1/openapi/workspace/qna/create' \
--header 'Content-Type: application/json' \
--header 'Authorization: openapi {access_token}' \
--data '{
"questions": [
"テスト質問"
],
"answer": "テスト回答",
"workspace": "テストスペース",
"metadatas": [
{
"typeCode": "Document type",
"content": "テストメタデータ"
}
]
}'
- レスポンスボディ:
| パラメータ名 | タイプ | 説明 |
|---|---|---|
| success | boolean | 成功したかどうか |
| msg | string | successがfalseの場合、エラーメッセージが入る |
- レスポンス例:
{
"success": true,
"msg": ""
}
ファイル検索
-
インターフェースURL:
v1/openapi/workspace/file -
リクエスト方式:
post -
リクエストヘッダー:
| パラメータ名 | 必須 | タイプ | 説明 |
|---|---|---|---|
| Authorization | は | string | SERVICEMEアクセストークンを記入、形式:openapi {access_token} |
- リクエストボディ:
| パラメータ名 | 必須 | タイプ | 説明 |
|---|---|---|---|
| workspace | は | string | ファイルスペース |
| pageIndex | 任意 | number | ページ番号、デフォルトは1 |
| pageSize | 任意 | number | 取得件数、デフォルトは10 |
- リクエスト例:
curl --location 'http://localhost/v1/openapi/workspace/file' \
--header 'Content-Type: application/json' \
--header 'Authorization: ••••••' \
--data '{
"workspace": "テストスペース",
"pageIndex": 1,
"pageSize": 10
}'
-
レスポンスボディ:
パラメータ名 サブパラメータ サブサブパラメータ タイプ 説明 data object配列 レスポンスデータ id string ファイルID name string ファイル名 size number ファイルサイズ(バイト単位) description string 説明 fullPath string ファイルパス tags object配列 ファイルタグ情報 id string タグID value string タグ内容 chunkingState string ファイルインデックス状態:waiting(待機中)、success(成功)、fail(失敗)、underway(処理中) previewState string ファイルプレビュー状態:waiting(待機中)、success(成功)、fail(失敗)、underway(処理中) fileCanPreview boolean ファイルプレビュー可否、true:可、false:不可 previewUrl string ファイルプレビューURL createdByRealName string ファイル作成者名 createdByAccount string ファイル作成者アカウント created datetime ファイル作成日時 modifiedByRealName string ファイル編集者名 modifiedByAccount string ファイル編集者アカウント modified datetime ファイル編集日時 success boolean 成功したかどうか msg string successがfalseの場合、エラーメッセージが入る -
レスポンス例:
json
{
"data": [
{
"id": "4339013367831199744",
"name": "test.docx",
"size": 15113,
"description": null,
"fullPath": "/",
"tags": [],
"chunkingState": "success",
"previewState": "success",
"fileCanPreview": true,
"previewUrl": "http://localhost.com/#/share/preview?fileId=4339013367831199744&objectType=2&previewType=file&mode=login",
"createdByRealName": "test",
"createdByAccount": "test",
"created": "2024-07-31T01:30:02.88",
"modifiedByRealName": "test",
"modifiedByAccount": "test",
"modified": "2024-07-31T01:30:02.88"
}
],
"pageSize": 10,
"pageIndex": 1,
"totalCount": 1,
"success": true,
"msg": ""
}
ファイルチャンクのクエリ
-
APIエンドポイント:
v1/openapi/workspace/file/chunk -
リクエストメソッド:
post -
リクエストヘッダー:
| パラメータ名 | 必須 | タイプ | パラメータ説明 |
|---|---|---|---|
| Authorization | は | string | SERVICEMEアクセストークンを入力、値の形式:openapi {access_token} |
- リクエストボディ:
| パラメータ名 | 必須 | タイプ | パラメータ説明 |
|---|---|---|---|
| fileId | は | string | ファイルID |
| imageFormat | いいえ | string | 画像フォーマット、markdownまたはhtml、デフォルトはmarkdown出力 |
| pageIndex | いいえ | number | ページ番号、デフォルトは1ページ目 |
| pageSize | いいえ | number | 取得件数、デフォルトは10件 |
- リクエスト例:
curl --location 'http://localhost/v1/openapi/workspace/file/chunk' \
--header 'Content-Type: application/json' \
--header 'Authorization: ••••••' \
--data '{
"fileId": "4344174161665458176",
"imageFormat": "html",
"pageIndex": 1,
"pageSize": 10
}'
-
レスポンスボディ:
パラメータ名 サブパラメータ サブサブパラメータ タイプ パラメータ説明 data object array レスポンスデータ id string チャンクID content string チャンク内容 success boolean 成功したかどうか msg string successがfalseの場合、ここにエラーメッセージが入る -
レスポンス例:
{
"data": [
{
"id": "4339013367831199744",
"content": "test"
}
],
"pageSize": 10,
"pageIndex": 1,
"totalCount": 1,
"success": true,
"msg": ""
}
RAG
-
APIエンドポイント:
/v1/openapi/rag -
リクエストメソッド:
post -
リクエストヘッダー:
| パラメータ名 | 必須 | タイプ | パラメータ説明 |
|---|---|---|---|
| Authorization | は | string | SERVICEMEアクセストークンを入力、値の形式:openapi {access_token} |
- リクエストボディ:
| パラメータ名 | タイプ | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
query | string | いいえ | 無し | 検索したい質問または内容。Keywordsパラメータと両方nullにはできません。 |
keywords | string | いいえ | 無し | キーワード。複数キーワードは | で区切る。Queryパラメータと両方nullにはできません。nullの場合は必要に応じてキーワードを抽出し、空でなければ渡されたキーワードを使用。 |
workspaces | array | いいえ | 無し | 今回のRAGで検索対象とするファイルスペース名またはID。指定するとそのスペースのみ検索。 |
ragObject | RagObject | は | 0 | RAGオブジェクトタイプ、列挙値(RagObject列挙参照)。現時点でQNA検索は未対応。 |
topk | number | は | 無し | 返却する結果数。 |
minSimilarity | double | いいえ | 0.8 | 最低類似度、範囲は [0, 1]。 |
metadataProvider | array | いいえ | 無し | 使用するメタデータ。現在は["default"]のみ対応。 |
metadataSearchType | number | いいえ | 0 | メタデータ検索方式。metadataProviderを有効にした場合に有効。0:フィルターモード、1:重み付けソートモード |
ragMode | SearchMode | は | 0 | RAGモード、列挙値(SearchMode列挙参照)。 |
weights | object | いいえ | 無し | 各インデックスのRRF重み。RagModeがHybridの場合のみ有効。nullの場合はデフォルト重みを使用。 |
reranker | string | いいえ | 無し | nullの場合はrerankerを使用しない。 |
- リクエスト例:
curl --location 'http://localhost/v1/openapi/rag' \
--header 'Authorization: ••••••' \
--header 'Content-Type: application/json' \
--data '{
"query": "人工知能とは何ですか?",
"keywords": "AI|機械学習",
"workspaces": ["workspace1", "workspace2"],
"ragObject": 0,
"topk": 3,
"minSimilarity": 0.8,
"metadataProvider": ["default"],
"metadataSearchType": 1,
"ragMode": 1,
"weights": {
"Embedding": 0.9,
"FullText": 0.8
},
"reranker": "default"
} '
- レスポンスボディ:
| フィールド名 | タイプ | 説明 |
|---|---|---|
data | object | レスポンスデータオブジェクト。検索結果や検索IDなどを含む。 |
data.results | array | 検索結果リスト。各要素はチャンク情報を含むオブジェクト。 |
data.results[].chunkId | string | チャンクID |
data.results[].fileId | string | チャンクが属するファイルID |
data.results[].fileName | string | チャンクが属するファイル名 |
data.results[].content | string | チャンク内容 |
data.results[].metadata | json | チャンクのメタデータ |
data.results[].url | string | チャンクのURL(存在する場合) |
data.results[].searchScore | double | 類似度スコア |
data.results[].rrfScore | double | RRFスコア |
data.results[].rerankScore | double | 再ランキングスコア |
data.results[].workspaceId | string | ファイルが属するファイルスペースID |
data.results[].workspaceName | string | ファイルが属するファイルスペース名 |
data.searchId | string | 今回の検索操作のユニークID |
success | boolean | リクエスト成功の有無 |
msg | string | リクエストのメッセージ(存在する場合) |
- レスポンス例:
{
"data": {
"results": [
{
"chunkId": "4422442085118906369",
"fileId": "4417076017114382336",
"fileName": "ファイル1.pdf",
"content": "……",
"metadata": {
"Url": "https://……",
"FileName": "ファイル1.pdf",
"WorkspaceName": "workspace1",
"FileId": "4417076017114382336",
"FilePath": "/",
"Created": "2025-03-03T11:23:08.803",
"Size": "1160594"
},
"url": "https://……",
"searchScore": 0.153852914388501,
"rrfScore": 0.8768274796195331,
"rerankScore": 0.0,
"workspaceId": "4417069258022846464",
"workspaceName": ""
},
{
"chunkId": "4422442085114712073",
"fileId": "4417076017114382336",
"fileName": "ファイル1.pdf",
"content": "……",
"metadata": {
"Url": "https://……",
"FileName": "ファイル1.pdf",
"WorkspaceName": "workspace1",
"FileId": "4417076017114382336",
"FilePath": "/",
"Created": "2025-03-03T11:23:08.803",
"Size": "1160594"
},
"url": "https://……",
"searchScore": 0.152822583517241,
"rrfScore": 0.8670604574184315,
"rerankScore": 0.0,
"workspaceId": "4417069258022846464",
"workspaceName": ""
},
{
"chunkId": "4422442085114712071",
"fileId": "4417076017114382336",
"fileName": "ファイル1.pdf",
"content": "……",
"metadata": {
"Url": "……",
"FileName": "ファイル1.pdf",
"WorkspaceName": "workspace1",
"FileId": "4417076017114382336",
"FilePath": "/",
"Created": "2025-03-03T11:23:08.803",
"Size": "1160594"
},
"url": "……",
"searchScore": 0.153708375384407,
"rrfScore": 0.8661891817471927,
"rerankScore": 0.0,
"workspaceId": "4417069258022846464",
"workspaceName": ""
}
],
"searchId": "4423568945336811520"
},
"success": true,
"msg": ""
}
- 列挙型
RagObject 列挙(現時点でQAはサポートされていません。選択しても検索できません)
| 列挙値 | 数値 | 説明 |
|---|---|---|
Both | 0 | Q&Aとドキュメント内容の両方を検索。 |
Qna | 1 | Q&A内容のみを検索。 |
Doc | 2 | ドキュメント内容のみを検索。 |
SearchMode 列挙
| 列挙値 | 数値 | 説明 |
|---|---|---|
Hybrid | 1 | ハイブリッド検索モード。埋め込みベクトルと全文検索を組み合わせる。 |
Embedding | 2 | 埋め込みベクトルのみを使った検索モード。 |
FullText | 3 | 全文検索のみを使った検索モード。 |
- Rerankモデルの設定方法
cohere-rerank-v3.5モデルの設定例:
INSERT INTO dbo.AI_LLM (Id,ModelName,TokenCount,Config,Enable,[Default],Display,DisplayName) VALUES
(4183721090264072898,N'rerank-v3.5',255454,N'{"RerankerName":"cohere","Uri":"https://ドメイン/v2/rerank","Token":"bearer token"}',1,0,0,N'cohere-rerank-v3.5');
注意:Cohere公式APIを使用する場合、Tokenフィールドの値はbearer token。Azure AI Foundry APIを使用する場合は、Tokenフィールドの値からbearerを除去してください。
ファイルスペース一覧API
基本情報
- リクエストメソッド:GET
- APIエンドポイント:
/v1/openapi/workspace/all
リクエストパラメータ
なし
レスポンス
| パラメータ名 | タイプ | 説明 |
|---|---|---|
| data | Array | カテゴリ一覧。各項目はカテゴリ情報とその下のファイルスペース一覧を含む |
| success | Boolean | API呼び出し結果(true = 成功、false = 失敗) |
| msg | String | メッセージ(成功時は通常空文字列) |
data配列の項目構造:カテゴリ(WorkspaceCategory)
| パラメータ名 | タイプ | 説明 |
|---|---|---|
| id | Number | カテゴリID |
| name | String | カテゴリ名 |
| icon | String | アイコン |
| workspaces | Array | そのカテゴリ下のファイルスペース一覧(下表参照) |
data[n].workspaces配列の項目構造:ファイルスペース(WorkspaceInfo)
| パラメータ名 | タイプ | 説明 |
|---|---|---|
| id | String | スペースID |
| name | String | スペース名 |
| description | String | スペース説明 |
| operationKeys | Array(String) | 操作権限リスト |
| fileCount | Number | ファイル数(統計値) |
レスポンス例:
{
"data": [
{
"id": 4493041505002323001,
"name": "動画資料",
"icon": "icon-video",
"workspaces": [
{
"id": "4493061452348784640",
"name": "プロモーション素材",
"description": "プロモーション動画素材の保存用",
"operationKeys": ["read", "write"],
"fileCount": 128
},
{
"id": "4493061452348784641",
"name": "会議録画",
"description": "社内会議録画ファイル",
"operationKeys": ["read"],
"fileCount": 57
}
]
},
{
"id": 4493041505002323002,
"name": "ドキュメント資料",
"icon": "icon-doc",
"workspaces": [
{
"id": "4493061452348784700",
"name": "製品マニュアル",
"description": "外部公開用製品説明ドキュメント",
"operationKeys": [],
"fileCount": 342
}
]
}
],
"success": true,
"msg": ""
}
ファイルスペース作成API
基本情報
- リクエストメソッド:POST
- APIエンドポイント:
/v1/openapi/workspace/create
リクエストパラメータ
| パラメータ名 | タイプ | 説明 |
|---|---|---|
| name | String | スペース名(例:"テストスペース") |
| workspaceTypeId | String | ファイルスペースタイプID(例:"4493041505002323969") |
| classificationId | String | カテゴリID(例:"4035265396658405376") |
| description | String | スペース説明(例:"テストスペース") |
| quota | Number | クォータ(例:1) |
| fileSize | Number | ファイルサイズ制限(例:1) |
| fileTypes | Array | 対応ファイルタイプリスト(例:[".mov", ".mp4", ".mpeg"]) |
| enable | Boolean | 有効化フラグ(true = 有効、false = 無効) |
| operationKeys | Array | 操作権限リスト(例:空配列) |
| notice | String | スペース通知(例:"テストスペース") |
| settings | String | スペース設定(JSON文字列形式、モード、ファイルサイズ、対応タイプ等を含む) |
注:
- settingsフィールドの説明は下記の【ファイル前処理および設定パラメータ説明】を参照してください。
- metadataTemplateフィールドの説明は下記の【メタデータパラメータ説明】を参照してください。
リクエストパラメータ例:
{
"name": "テストスペース",
"workspaceTypeId": "4493041505002323969",
"classificationId": "4035265396658405376",
"description": "テストスペース",
"quota": 1,
"fileSize": 1,
"fileTypes": [".mov", ".mp4", ".mpeg"],
"enable": true,
"operationKeys": [],
"notice": "テストスペース",
"settings": "{\"setting\":{\"mode\":\"default\",\"identifier\":\"\",\"maxLength\":1024,\"overlap\":0},\"status\":null,\"fileSize\":1,\"fileTypes\":[\".mov\",\".mp4\",\".mpeg\"]}"
}
戻り値
| パラメータ名 | 型 | 説明 |
|---|---|---|
| data | String | 新規ファイルスペースのID(例:"4493061452348784640") |
| success | Boolean | API呼び出し結果(true = 成功、false = 失敗) |
| msg | String | メッセージ(成功時は通常空文字列) |
戻り値例:
{
"data": "4493061452348784640",
"success": true,
"msg": ""
}
ファイルスペース編集API
基本情報
- リクエスト方式:POST
- エンドポイント:
/v1/openapi/workspace/update
リクエストパラメータ
| パラメータ名 | 型 | 説明 |
|---|---|---|
| id | String | 編集対象のファイルスペースID(例:"4437336392049102848") |
| workspaceTypeId | String | ファイルスペースタイプID(例:"4437336252408139777") |
| workspaceTypeName | String | ファイルスペースタイプ名(例:"テストスペース") |
| name | String | スペース名(例:"テストスペース") |
| enable | Boolean | 有効化フラグ(true = 有効、false = 無効) |
| notice | String | スペース通知(例:"最終版テスト") |
| description | String | スペース説明(例:"最終版テスト") |
| classificationId | String | 分類ID(例:"4035265396658405376") |
| quota | Number/Null | クォータ(null可、変更しない場合) |
| quotaUsage | Number | 使用済みクォータ(例:50815916) |
| settings | String | スペース設定(JSON文字列形式、モード、OCR、要約などの高度設定を含む) |
| metadataTemplate | String | メタデータテンプレート(JSON配列文字列、例:"\[{"name":" テスト ","type":0}]") |
注:
- settingsフィールドの詳細は下記【ファイル前処理と設定パラメータ説明】を参照してください。
- metadataTemplateフィールドの詳細は下記【メタデータパラメータ説明】を参照してください。
リクエスト例:
{
"id": "4437336392049102848",
"workspaceTypeId": "4437336252408139777",
"workspaceTypeName": "テストスペース",
"name": "テストスペース",
"enable": true,
"notice": "最終版テスト",
"description": "最終版テスト",
"classificationId": "4035265396658405376",
"quota": null,
"quotaUsage": 50815916,
"settings": "{\"setting\":{\"mode\":\"refine\",\"identifier\":\"\",\"maxLength\":1024,\"overlap\":0,\"previewEnable\":true,\"enable\":true,\"documentOCR\":false,\"summaryEnable\":true,\"imageRecognize\":false,\"ocrMode\":\"layout\",\"summaryPrompt\":\"### Summarize the following in the original language in no more than 200 words.\"},\"status\":null,\"fileSize\":null,\"fileTypes\":[\".md\"],\"useWorkspaceSetting\":true}",
"metadataTemplate": "[{\"name\":\"テスト\",\"type\":0}]"
}
戻り値
| パラメータ名 | 型 | 説明 |
|---|---|---|
| success | Boolean | API呼び出し結果(true = 成功、false = 失敗) |
| msg | String | メッセージ(成功時は通常空文字列) |
戻り値例:
{
"success": true,
"msg": ""
}
ファイルスペース削除API
基本情報
- リクエスト方式:DELETE
- エンドポイント:
/v1/openapi/workspace/delete
リクエストパラメータ
| パラメータ名 | 型 | 位置 | 説明 |
|---|---|---|---|
| ids | Array(Number) | QueryまたはBody | 削除対象のファイルスペースIDリスト(複数対応) |
リクエスト例:
[
4493061452348784640,
4493061452348784641
]
戻り値
| パラメータ名 | 型 | 説明 |
|---|---|---|
| success | Boolean | API呼び出し結果(true = 成功、false = 失敗) |
| msg | String | メッセージ(成功時は通常空文字列) |
戻り値例:
{
"success": true,
"msg": ""
}
ファイル前処理と設定パラメータ説明
このJSON構造は、ファイルスペース内のファイルに対する前処理ルール、分割モード、機能スイッチの設定を定義するもので、通常はsettingsフィールドのコア内容(ファイルスペース追加/編集APIのsettingsパラメータに対応)です。以下に各パラメータの詳細を示します。
1. コア設定オブジェクト:setting
| パラメータ名 | 型 | 値の説明 | 備考 |
|---|---|---|---|
mode | String | 選択肢:- default:デフォルト分割モード- refine:細分割モード | ファイル内容の分割戦略を制御。細分割モードはより細かく内容を分割します。 |
maxLength | Number | 数値(例:1024) | カスタム分割モデル時に有効。各分割の最大長さを定義。デフォルトは1024。 |
overlap | Number | 数値(例:0) | 分割テキストの上下重複長さ。分割による内容断裂を防ぐため。0は重複なし。 |
previewEnable | Boolean | true(有効)/ false(無効) | ファイルプレビュー機能の有効化。オンにするとファイルを開かずに一部内容を閲覧可能。 |
enable | Boolean | true(有効)/ false(無効) | 総合スイッチ。ファイル前処理機能(OCR、要約生成など全サブ機能)を有効化。 |
documentOCR | Boolean | true(オン)/ false(オフ) | ドキュメントのOCR認識を制御。画像形式や画像を含む文書に適用。オンで画像内文字を抽出。 |
ocrMode | String | 選択肢:- read:読み取りモード(文字のみ抽出)- layout:レイアウトモード(段落や表の配置を保持) | documentOCRがtrue時に有効。OCR認識の精度と出力形式を定義。 |
summaryEnable | Boolean | true(オン)/ false(オフ) | 自動文書要約の生成を制御。オンでsummaryPromptに基づく要約を生成。 |
imageRecognize | Boolean | true(オン)/ false(オフ) | 文書内の画像要素認識を制御。オンで画像の種類や重要情報を解析。 |
summaryPrompt | String | テキスト文字列(例:"### Summarize the following in the original language in no more than 200 words.") | 全文要約生成ルールのカスタマイズ。Markdown形式対応。AIによる要約生成の指示に使用。 |
formulas | Boolean | true(オン)/ false(オフ) | 文書内の数式認識を制御(数学式、化学式など)。オンで数式の原形式を抽出・保持。 |
screenshots_by_page | Boolean | true(オン)/ false(オフ) | ページ単位でのスクリーンショット生成を制御。オンで各ページの画像を生成し、レイアウト確認に便利。 |
2. グローバル設定スイッチ:useWorkspaceSetting
| パラメータ名 | 型 | 値の説明 | 備考 |
|---|---|---|---|
useWorkspaceSetting | Boolean | true(従う)/ false(カスタム) | 現在のファイル設定が所属する**ファイルスペース(Workspace)**のグローバル設定に従うかを制御:- true:Workspaceのデフォルト設定を使用し、現在のsettingのカスタム設定は無視- false:現在のsettingのカスタム設定を使用し、Workspaceのデフォルト設定を上書き |
完全なJSON例
{
"setting": {
"mode": "refine", // 分割モード、default:デフォルト、refine:細分割
"maxLength": 1024, // カスタム分割モデル時に設定、デフォルト1024
"overlap": 0, // 分割テキストの上下重複長さ
"previewEnable": true, // ファイルプレビュー有効化
"enable": true, // 前処理有効化
"documentOCR": true, // OCRオン
"ocrMode": "layout", // OCRモード、read:読み取り、layout:レイアウト
"summaryEnable": true, // 文書要約生成オン
"imageRecognize": true, // 文書内画像認識オン
"summaryPrompt": "### Summarize the following in the original language in no more than 200 words.", // カスタム全文要約プロンプト
"formulas": false, // 数式認識オフ
"screenshots_by_page": false // ページ単位スクリーンショットオフ
},
"useWorkspaceSetting": true // ファイル設定がWorkspace設定に従うか
}
メタデータパラメータ説明
メタデータはJSON文字列をパラメータ値として受け取ります。
1. コア設定オブジェクト:setting
| パラメータ名 | 型 | 値の説明 | 備考 |
|---|---|---|---|
name | String | メタデータ名 | |
type | Number | 0:テキストタイプ;1:選択肢タイプ | |
limit | String | 選択肢の各項目 |
完全なJSON例
{
"metadataTemplate": "[{\"name\":\"テスト\",\"type\":0},{\"name\":\"テスト2\",\"type\":1,\"limit\":\"[\\\"選択肢1\\\",\\\"選択肢2\\\"]\"}]"
}
ファイル物理削除API
基本情報
- リクエスト方式:DELETE
- エンドポイント:
/v1/openapi/workspace/file/deleteFilePhysically
リクエストパラメータ
| パラメータ名 | 型 | 位置 | 必須 | 説明 |
|---|---|---|---|---|
| id | Number(Int64) | Query | はい | 物理削除対象のファイルID |
リクエスト例(Query):
/v1/openapi/workspace/file/deleteFilePhysically?id=4493061452348784640
cURL例:
curl -X DELETE "https://<host>/v1/openapi/workspace/file/deleteFilePhysically?id=4493061452348784640" ^
-H "Authorization: Bearer <token>"
戻り値
| パラメータ名 | 型 | 説明 |
|---|---|---|
| success | Boolean | API呼び出し結果(true = 成功、false = 失敗) |
| msg | String | メッセージ(成功時は通常空文字列) |
戻り値例:
{
"success": true,
"msg": ""
}
動作説明
- 物理削除は復元不可の操作です。慎重に呼び出してください。
- 指定IDが存在しないか権限がない場合は失敗を返します。
ファイルメタデータ編集API
基本情報
- リクエスト方式:PUT
- エンドポイント:
/v1/openapi/workspace/file/metadataExpansionEdit
リクエストパラメータ
| パラメータ名 | 型 | 位置 | 必須 | 説明 |
|---|---|---|---|---|
| id | Number(Int64) | Body | はい | 編集対象のファイルID |
| metadataTemplate | String | Body | いいえ | 拡張メタデータのJSON文字列。空または省略時は拡張メタデータをクリア。推奨構造例:[{"name":"Document type","type":0,"value":"契約書"}] |
リクエスト例(JSON):
{
"id": 4493061452348784640,
"metadataTemplate": "[{\"name\":\"Document type\",\"type\":0,\"value\":\"契約書\"},{\"name\":\"Department\",\"type\":0,\"value\":\"営業部\"}]"
}
cURL例:
curl -X PUT "https://<host>/v1/openapi/workspace/file/metadataExpansionEdit" ^
-H "Authorization: Bearer <token>" ^
-H "Content-Type: application/json" ^
--data-raw "{\"id\":4493061452348784640,\"metadataTemplate\":\"[{\\\"name\\\":\\\"Document type\\\",\\\"type\\\":0,\\\"value\\\":\\\"契約書\\\"},{\\\"name\\\":\\\"Department\\\",\\\"type\\\":0,\\\"value\\\":\\\"営業部\\\"}]\"}"
戻り値
| パラメータ名 | 型 | 説明 |
|---|---|---|
| success | Boolean | API呼び出し結果(true = 成功、false = 失敗) |
| msg | String | メッセージ(成功時は通常空文字列) |
戻り値例:
{
"success": true,
"msg": ""
}
動作説明
- 入力パラメータに基づきファイルの拡張メタデータ(MetadataExpansion)を更新し、doc_metadataインデックスを再構築して検索に反映させます。
- 指定IDが存在しないか権限がない場合は失敗を返します。
ファイル一覧API
基本情報
- リクエスト方式:POST
- エンドポイント:
/v1/openapi/workspace/file
リクエストパラメータ
| パラメータ名 | 型 | 位置 | 必須 | 説明 |
|---|---|---|---|---|
| workspace | String | Body | はい | ファイルスペース名 |
| pageIndex | Number(Int32) | Body | いいえ | ページ番号、デフォルトは1 |
| pageSize | Number(Int32) | Body | いいえ | 1ページあたりの件数、デフォルトは10 |
リクエスト例(JSON):
{
"workspace": "公共資料庫",
"pageIndex": 1,
"pageSize": 10
}
cURL例:
curl -X POST "https://<host>/v1/openapi/workspace/file" ^
-H "Authorization: Bearer <token>" ^
-H "Content-Type: application/json" ^
--data-raw "{\"workspace\":\"公共資料庫\",\"pageIndex\":1,\"pageSize\":10}"
戻り値
| パラメータ名 | 型 | 説明 |
|---|---|---|
| pageIndex | Number | 現在のページ番号 |
| pageSize | Number | 1ページあたりの件数 |
| totalCount | Number | 総件数(0または-1は不明/増分を示し、クライアント側で適宜処理可能) |
| data | Array<File> | ファイルデータリスト。詳細は下記「ファイル項目フィールド説明」を参照 |
ファイル項目フィールド説明(例、実際のフィールドはシステムバージョンにより増減あり):
| フィールド名 | 型 | 説明 |
|---|---|---|
| id | Number | ファイルID |
| fileName | String | ファイル名 |
| previewUrl | String | ファイルプレビューURL(システムでプレビューテンプレート設定時に返却) |
| fileCanPreview | Boolean | プレビュー可能か(バックエンドのプレビュー状態から算出) |
| previewState | String | プレビュー状態:waiting / underway / success / fail |
| chunkingState | String | チャンク処理状態:waiting / underway / success / fail |
| modified | String | 最終更新日時(ISO形式例:2024-01-01T12:00:00Z) |
戻り値例:
{
"pageIndex": 1,
"pageSize": 10,
"totalCount": 125,
"data": [
{
"id": 4493061452348784640,
"fileName": "サンプル文書.docx",
"previewUrl": "https://<host>/preview/file/4493061452348784640",
"fileCanPreview": true,
"previewState": "success",
"chunkingState": "underway",
"modified": "2024-07-01T09:30:15Z"
}
]
}
動作説明
- 「ファイル」のみ返却(フォルダは含まない)。
- デフォルトは
Modifiedフィールドの降順ソート、ページング対応。 - 指定された
workspace内のファイルのみ検索。呼び出し元は該当スペースのアクセス権限が必要。管理者以外は追加の権限も必要。 - システムでファイルプレビューURLテンプレート設定時は
previewUrlを返却。未設定時は空または省略。 previewStateとchunkingStateの列挙値はそれぞれwaiting/underway/success/fail。pageIndex/pageSize未指定時はデフォルト値1/10を使用。
ファイルスペースタイプ
ファイルスペースタイプ新規追加API
基本情報
- リクエスト方式:POST
- エンドポイント:
/v1/openapi/workspaceType
リクエストパラメータ
| パラメータ名 | 型 | 説明 |
|---|---|---|
| code | String | ファイルスペースタイプコード |
| title | Array | 多言語タイトルリスト。各要素は以下のフィールドを含む:- languageCode:言語コード(例:ja-JP、zh-CN、en-US)- content:該当言語のタイトル内容 |
| icon | String | アイコンパス(例:/icons/01842830fc1348edacf68edd2695614a.png) |
| sort | Number | ソート順(例:1) |
| description | String | タイプ説明 |
リクエスト例(Body):
{
"code": "ファイルスペースタイプコード",
"title": [
{ "languageCode": "zh-CN", "content": "多言語" },
{ "languageCode": "en-US", "content": "テスト追加" }
],
"icon": "/icons/01842830fc1348edacf68edd2695614a.png",
"sort": 1,
"description": "説明"
}
cURL例:
curl -X POST "https://<host>/v1/openapi/workspaceType" ^
-H "Content-Type: application/json" ^
-H "Authorization: Bearer <token>" ^
-d "{ \"code\": \"ファイルスペースタイプコード\", \"title\": [ { \"languageCode\": \"zh-CN\", \"content\": \"多言語\" } ], \"icon\": \"/icons/018...png\", \"sort\": 1, \"description\": \"説明\" }"
戻り値
| パラメータ名 | 型 | 説明 |
|---|---|---|
| success | Boolean | API呼び出し結果(true = 成功、false = 失敗) |
| msg | String | メッセージ(成功時は通常空文字列) |
戻り値例:
{ "success": true, "msg": "" }
ファイルスペースタイプ編集インターフェース
基本情報
- リクエスト方式:PUT
- インターフェースアドレス:
/v1/openapi/workspaceType
リクエストパラメータ
| パラメータ名 | タイプ | 説明 |
|---|---|---|
| id | String | 編集対象のタイプID |
| code | String | ファイルスペースタイプコード |
| title | Array | 多言語タイトルリスト(同上) |
| icon | String | アイコンパス |
| sort | Number | ソート順序番号 |
| description | String | タイプ説明 |
リクエストパラメータ例(Body):
{
"id": "4493041505002323969",
"code": "workspace-type-code",
"title": [
{ "languageCode": "zh-CN", "content": "中文名称" },
{ "languageCode": "en-US", "content": "English Name" }
],
"icon": "/icons/xxx.png",
"sort": 2,
"description": "更新说明"
}
cURL例:
curl -X PUT "https://<host>/v1/openapi/workspaceType" ^
-H "Content-Type: application/json" ^
-H "Authorization: Bearer <token>" ^
-d "{ \"id\": \"4493041505002323969\", \"code\": \"workspace-type-code\", \"title\": [ { \"languageCode\": \"zh-CN\", \"content\": \"中文名称\" } ], \"icon\": \"/icons/xxx.png\", \"sort\": 2, \"description\": \"更新说明\" }"
戻り値
| パラメータ名 | タイプ | 説明 |
|---|---|---|
| success | Boolean | インターフェース呼び出し結果(true = 成功、false = 失敗) |
| msg | String | メッセージ(成功時は通常空文字) |
戻り値例:
{ "success": true, "msg": "" }
ファイルスペースタイプ削除インターフェース
基本情報
- リクエスト方式:DELETE
- インターフェースアドレス:
/v1/openapi/workspaceType
リクエストパラメータ
| パラメータ名 | タイプ | 位置 | 説明 |
|---|---|---|---|
| ids | Array(Number) | Query または Body | 削除対象のタイプIDリスト、バッチ対応可能 |
リクエストパラメータ例(Body):
[4493061452348784640, 4493061452348784641]
cURL例:
curl -X DELETE "https://<host>/v1/openapi/workspaceType" ^
-H "Content-Type: application/json" ^
-H "Authorization: Bearer <token>" ^
-d "[4493061452348784640,4493061452348784641]"
戻り値
| パラメータ名 | タイプ | 説明 |
|---|---|---|
| success | Boolean | インターフェース呼び出し結果(true = 成功、false = 失敗) |
| msg | String | メッセージ(成功時は通常空文字) |
戻り値例:
{ "success": true, "msg": "" }
ファイルスペースタイプフォーム情報取得インターフェース
基本情報
- リクエスト方式:GET
- インターフェースアドレス:
/v1/openapi/workspaceType
リクエストパラメータ
| パラメータ名 | タイプ | 位置 | 必須 | 説明 |
|---|---|---|---|---|
| id | String | Query | はい | タイプID |
リクエストパラメータ例(Query):
/v1/openapi/workspaceType?id=4493061452348784640
cURL例:
curl -X GET "https://<host>/v1/openapi/workspaceType?id=4493061452348784640" ^
-H "Authorization: Bearer <token>"
戻り値
| パラメータ名 | タイプ | 説明 |
|---|---|---|
| data | Object(MasterDataVO) | タイプ詳細(code、title、icon、sort、description等を含む) |
| success | Boolean | インターフェース呼び出し結果(true = 成功、false = 失敗) |
| msg | String | メッセージ(成功時は通常空文字) |
戻り値例:
{
"data": {
"id": "4493061452348784640",
"code": "workspace-type-code",
"title": [
{ "languageCode": "zh-CN", "content": "中文名称" }
],
"icon": "/icons/xxx.png",
"sort": 1,
"description": "说明"
},
"success": true,
"msg": ""
}
ファイルスペースタイプ有効化/無効化インターフェース
基本情報
- リクエスト方式:PUT
- インターフェースアドレス:
/v1/openapi/workspaceType/Enable
リクエストパラメータ
| パラメータ名 | タイプ | 説明 |
|---|---|---|
| id | Number(Int64) | タイプID |
| enable | Boolean | 有効化かどうか(true = 有効、false = 無効) |
リクエストパラメータ例(Body):
{ "id": 4493061452348784640, "enable": true }
cURL例:
curl -X PUT "https://<host>/v1/openapi/workspaceType/Enable" ^
-H "Content-Type: application/json" ^
-H "Authorization: Bearer <token>" ^
-d "{ \"id\": 4493061452348784640, \"enable\": true }"
戻り値
| パラメータ名 | タイプ | 説明 |
|---|---|---|
| success | Boolean | インターフェース呼び出し結果(true = 成功、false = 失敗) |
| msg | String | メッセージ(成功時は通常空文字) |
戻り値例:
{ "success": true, "msg": "" }
ファイルスペースタイプドロップダウン取得インターフェース
基本情報
- リクエスト方式:GET
- インターフェースアドレス:
/v1/openapi/workspaceType/Dropdown
リクエストパラメータ
なし
cURL例:
curl -X GET "https://<host>/v1/openapi/workspaceType/Dropdown" ^
-H "Authorization: Bearer <token>"
戻り値
| パラメータ名 | タイプ | 説明 |
|---|---|---|
| data | Array(DropdownVO) | ドロップダウンデータリスト |
| success | Boolean | インターフェース呼び出し結果(true = 成功、false = 失敗) |
| msg | String | メッセージ(成功時は通常空文字) |
戻り値例:
{
"data": [
{ "label": "個人スペース", "value": "4493061452348784640" },
{ "label": "チームスペース", "value": "4493061452348784641" }
],
"success": true,
"msg": ""
}
ユーザー
ユーザー追加(バッチ対応)
-
インターフェースアドレス:
v1/openapi/user -
リクエスト方式:
post -
リクエストヘッダー:
| パラメータ名 | 必須 | タイプ | 説明 |
|---|---|---|---|
| Authorization | は | string | SERVICEMEアクセストークンを記入、値の形式:openapi {access_token} |
- Content Type:
application/json - リクエストボディ:
| パラメータ名 | 必須 | タイプ | デフォルト値 | 説明 |
|---|---|---|---|---|
userName | は | string | 無 | アカウント/ユーザー名 |
password | いいえ | string | '' | パスワード |
active | いいえ | boolean | true | 有効状態 |
userInfo | いいえ | object | 無 | ユーザー情報 |
userInfo.realName | いいえ | string | userNameの値 | 本名 |
userInfo.spell | いいえ | string | 無 | 本名のピンイン |
userInfo.serialNumber | いいえ | string | 無 | 社員番号 |
userInfo.nickName | いいえ | string | 無 | ニックネーム |
userInfo.gender | いいえ | number | 0 | 性別 0:FEMALE, 1:MALE |
userInfo.birthday | いいえ | string | 無 | 誕生日 |
userInfo.mobilePhone | いいえ | string | 無 | 携帯番号 |
userInfo.email | いいえ | string | 無 | メール |
userInfo.weChat | いいえ | string | 無 | WeChatID |
userInfo.avatar | いいえ | string | 無 | アバター |
userInfo.region | いいえ | string | 無 | 地域 |
userInfo.joinTime | いいえ | string | 無 | 入社日 |
userInfo.sort | いいえ | number | 0 | ソート番号 |
userInfo.enable | いいえ | boolean | false | 有効/無効 |
userInfo.description | いいえ | string | 無 | 説明 |
userInfo.external | いいえ | boolean | false | 内部/外部ユーザー識別 false: 内部ユーザー, true: 外部ユーザー |
userInfo.officePhoneNumber | いいえ | string | 無 | オフィス電話 |
userInfo.isAad | いいえ | boolean | 無 | アカウントがAAD(microsoft Entra ID)由来かどうか |
- リクエスト例:
curl --location 'http://localhost/v1/openapi/user' \
--header 'Authorization: openapi {access_token}' \
--data '[{
"userName": "user1",
"password": "abc123",
"active": true,
"userInfo": {
"realName": "张三",
"spell": "zhangsan",
"serialNumber": "123456",
"nickName": "张三",
"gender": 0,
"birthday": "1990-01-01",
"mobilePhone": "13800138000",
"email": "zhangsan@email.com",
"weChat": "zhangsan",
"avatar": "/icons/e5392a9c9efb423cab69ce040dcb04e7.png",
"region": "中国",
"joinTime": "2023-01-01",
"sort": 101,
"enable": true,
"description": "张三的描述",
"external": false,
"officePhoneNumber": "010-12345678",
"isAad": false
},
}] '
- レスポンスボディ:
| フィールド名 | タイプ | 説明 |
|---|---|---|
data | object | レスポンスデータオブジェクト |
data.accountId | string | アカウントID |
data.userId | string | ユーザーID |
data.userName | string | ユーザー名 |
data.realName | string | ユーザー本名 |
success | boolean | リクエスト成功可否 |
msg | string | リクエストメッセージ(あれば) |
- レスポンス例:
{
"success": true,
"msg": "",
"data": [
{
"accountId": "123456",
"userId": "123456",
"userName": "user1",
"realName": "张三"
}
]
}
ユーザー編集
-
インターフェースアドレス:
v1/openapi/user -
リクエスト方式:
put -
リクエストヘッダー:
| パラメータ名 | 必須 | タイプ | 説明 |
|---|---|---|---|
| Authorization | は | string | SERVICEMEアクセストークンを記入、値の形式:openapi {access_token} |
- Content Type:
application/json - リクエストボディ:
| パラメータ名 | 必須 | タイプ | デフォルト値 | 説明 |
|---|---|---|---|---|
userName | いいえ | string | 無 | アカウント/ユーザー名、ユーザー検索用で変更不可、idと両方空不可 |
id | いいえ | string | '' | id、userNameと両方空不可 |
active | は | boolean | true | 有効状態 |
realName | は | string | userNameの値 | 本名 |
spell | は | string | 無 | 本名のピンイン |
serialNumber | は | string | 無 | 社員番号 |
nickName | は | string | 無 | ニックネーム |
gender | は | number | 0 | 性別 0:FEMALE, 1:MALE |
birthday | は | string | 無 | 誕生日 |
mobilePhone | は | string | 無 | 携帯番号 |
email | は | string | 無 | メール |
weChat | は | string | 無 | WeChatID |
avatar | は | string | 無 | アバター |
region | は | string | 無 | 地域 |
joinTime | は | string | 無 | 入社日 |
sort | は | number | 0 | ソート番号 |
enable | は | boolean | false | 有効/無効 |
description | は | string | 無 | 説明 |
external | は | boolean | false | 内部/外部ユーザー識別 false: 内部ユーザー, true: 外部ユーザー |
officePhoneNumber | は | string | 無 | オフィス電話 |
isAad | は | Boolean | 無 | アカウントがAAD(microsoft Entra ID)由来かどうか |
- リクエスト例:
curl --location 'http://localhost/v1/openapi/user' \
--header 'Authorization: openapi {access_token}' \
--data '{
"id": "123456",
"userName": "user1",
"realName": "张三",
"spell": "zhangsan",
"serialNumber": "123456",
"nickName": "张三",
"gender": 0,
"birthday": "1990-01-01",
"mobilePhone": "13800138000",
"email": "zhangsan@email.com",
"weChat": "zhangsan",
"avatar": "/icons/e5392a9c9efb423cab69ce040dcb04e7.png",
"region": "中国",
"joinTime": "2023-01-01",
"sort": 101,
"enable": true,
"description": "张三的描述",
"external": false,
"officePhoneNumber": "010-12345678",
"isAad": false
} '
- レスポンスボディ:
| フィールド名 | タイプ | 説明 |
|---|---|---|
success | boolean | リクエスト成功可否 |
msg | string | リクエストメッセージ(あれば) |
- レスポンス例:
{
"success": true,
"msg": ""
}
ユーザー削除
-
インターフェースアドレス:
v1/openapi/user -
リクエスト方式:
delete -
リクエストヘッダー:
| パラメータ名 | 必須 | タイプ | 説明 |
|---|---|---|---|
| Authorization | は | string | SERVICEMEアクセストークンを記入、値の形式:openapi {access_token} |
- Content Type:
application/json - リクエストボディ:
| パラメータ名 | 必須 | タイプ | デフォルト値 | 説明 |
|---|---|---|---|---|
| は | array | 無 | ユーザーID配列またはユーザー名配列。配列内はIDのみかユーザー名のみで混在不可。 |
- リクエスト例:
curl --location 'http://localhost/v1/openapi/user' \
--header 'Authorization: openapi {access_token}' \
--data '['user1','user2']'
- レスポンスボディ:
| フィールド名 | タイプ | 説明 |
|---|---|---|
success | boolean | リクエスト成功可否 |
msg | string | リクエストメッセージ(あれば) |
- レスポンス例:
{
"success": true,
"msg": ""
}
ユーザー有効化
-
インターフェースアドレス:
v1/openapi/user/{userCode}/enable -
リクエスト方式:
put -
リクエストヘッダー:
| パラメータ名 | 必須 | タイプ | 説明 |
|---|---|---|---|
| Authorization | は | string | SERVICEMEアクセストークンを記入、値の形式:openapi {access_token} |
- Content Type:
application/json - ルートパラメータ:
| パラメータ名 | 必須 | タイプ | デフォルト値 | 説明 |
|---|---|---|---|---|
| userCode | は | string | 無 | ユーザーIDまたはユーザー名 |
- リクエスト例:
curl --location 'http://localhost/v1/openapi/user/123456/enable' \
--header 'Authorization: openapi {access_token}' \
- レスポンスボディ:
| フィールド名 | タイプ | 説明 |
|---|---|---|
success | boolean | リクエスト成功可否 |
msg | string | リクエストメッセージ(あれば) |
- レスポンス例:
{
"success": true,
"msg": ""
}
ユーザー無効化
-
インターフェースアドレス:
v1/openapi/user/{userCode}/disable -
リクエスト方式:
put -
リクエストヘッダー:
| パラメータ名 | 必須 | タイプ | 説明 |
|---|---|---|---|
| Authorization | は | string | SERVICEMEアクセストークンを記入、値の形式:openapi {access_token} |
- Content Type:
application/json - routeパラメータ:
| パラメータ名 | 必須 | タイプ | デフォルト値 | パラメータ説明 |
|---|---|---|---|---|
| userCode | はい | string | なし | ユーザーIDまたはユーザー名 |
- リクエスト例:
curl --location 'http://localhost/v1/openapi/user/123456/disable' \
--header 'Authorization: openapi {access_token}' \
- レスポンスbody:
| フィールド名 | タイプ | 説明 |
|---|---|---|
success | boolean | リクエストが成功したかどうか |
msg | string | リクエストの返却メッセージ(ある場合) |
- レスポンス例:
{
"success": true,
"msg": ""
}
ユーザーの有効化/無効化(バッチ対応)
-
エンドポイント:
v1/openapi/user/enable -
リクエストメソッド:
put -
リクエストヘッダー:
| パラメータ名 | 必須 | タイプ | パラメータ説明 |
|---|---|---|---|
| Authorization | はい | string | SERVICEMEアクセストークンを入力。値の形式:openapi {access_token} |
- Content Type:
application/json - リクエストbody:
| パラメータ名 | 必須 | タイプ | デフォルト値 | パラメータ説明 |
|---|---|---|---|---|
| codes | はい | array | なし | ユーザーIDまたはユーザー名の配列。配列内はすべてIDかすべてユーザー名で統一。 |
| operation | はい | boolean | true | true: 有効化, false: 無効化 |
- リクエスト例:
curl --location 'http://localhost/v1/openapi/user/enable' \
--header 'Authorization: openapi {access_token}' \
--data '{
"codes": ['user1', 'user2'],
"operation": true
}'
- レスポンスbody:
| フィールド名 | タイプ | 説明 |
|---|---|---|
success | boolean | リクエストが成功したかどうか |
msg | string | リクエストの返却メッセージ(ある場合) |
- レスポンス例:
{
"success": true,
"msg": ""
}
ユーザーリストの取得(ページネーション対応)
-
エンドポイント:
v1/openapi/user/pageList -
リクエストメソッド:
post -
リクエストヘッダー:
| パラメータ名 | 必須 | タイプ | パラメータ説明 |
|---|---|---|---|
| Authorization | はい | string | SERVICEMEアクセストークンを入力。値の形式:openapi {access_token} |
- Content Type:
application/json - リクエストbody:
| パラメータ名 | 必須 | タイプ | デフォルト値 | パラメータ説明 |
|---|---|---|---|---|
orderField | はい | string | なし | ソートに使用するフィールド。Idは時間情報を含むため、作成日時のソートにidを使用可能 |
orderType | はい | string | なし | ソートタイプ。asc: 昇順, desc: 降順 |
conditions | いいえ | array | なし | 検索条件。複数指定時はAND条件で結合 |
conditions.fieldName | いいえ | string | なし | 検索条件のフィールド名(例:realName) |
conditions.fieldValue | いいえ | string | なし | 検索条件の値 |
conditions.conditionalType | いいえ | number | 0 | 検索条件の比較タイプ 0: 完全一致, 1: 部分一致, 2: より大きい, 3: 以上, 4: より小さい, 5: 以下, 6: 含む(in), 7: 含まない(not in), 8: 左部分一致, 9: 右部分一致, 10: 不等, 11: nullまたは空, 12: 空でない, 13: notLike |
pageIndex | はい | number | なし | ページ番号 |
pageSize | はい | number | なし | 1ページあたりの件数 |
- リクエスト例:
curl --location 'http://localhost/v1/openapi/user/pageList' \
--header 'Authorization: openapi {access_token}' \
{
"orderField": "id",
"orderType": "desc",
"conditions": [
{
"fieldName": "realName",
"fieldValue": "张三",
"conditionalType": 0
}
],
"pageIndex": 1,
"pageSize": 15
}
- レスポンスbody:
| フィールド名 | タイプ | 説明 |
|---|---|---|
data | array | ページネーションされたデータ |
data.id | string | アカウントID |
data.userId | string | ユーザーID |
data.userName | string | ユーザー名 |
data.active | boolean | 有効かどうか |
data.avatar | string | アバター |
data.birthday | string | 誕生日 |
data.created | string | ユーザーデータ作成日 |
data.modified | string | ユーザーデータ最終更新日 |
data.description | string | 説明 |
data.gender | number | 性別 0:女性, 1:男性 |
data.mobilePhone | string | 携帯番号 |
data.nickName | string | ニックネーム |
data.email | string | メールアドレス |
data.joinTime | string | 入社日 |
data.region | string | 地域 |
data.weChat | string | WeChat番号 |
data.spell | string | 本名のピンイン |
data.serialNumber | string | 社員番号 |
data.accountId | string | ユーザー所属アカウントID |
data.sort | number | ソート番号 |
data.officePhoneNumber | string | オフィス電話番号 |
data.external | boolean | 内部/外部ユーザー識別 false: 内部ユーザー, true: 外部ユーザー |
data.isAad | boolean | アカウントがAAD(microsoft Entra ID)由来かどうか |
data.enable | boolean | 有効/無効 |
pageIndex | number | 現在のページ番号 |
pageSize | number | ページサイズ |
totalCount | number | 総件数 |
success | boolean | リクエストが成功したかどうか |
msg | string | リクエストの返却メッセージ(ある場合) |
- レスポンス例:
{
"data": [
{
"accountId": "123456",
"userId": "123456",
"userName": "user1",
"realName": "张三"
}
],
"pageSize": 15,
"pageIndex": 1,
"totalCount": 1,
"success": true,
"msg": null
}
ユーザー情報の取得
-
エンドポイント:
v1/openapi/user/{userCode} -
リクエストメソッド:
get -
リクエストヘッダー:
| パラメータ名 | 必須 | タイプ | パラメータ説明 |
|---|---|---|---|
| Authorization | はい | string | SERVICEMEアクセストークンを入力。値の形式:openapi {access_token} |
- Content Type:
application/json - routeパラメータ:
| パラメータ名 | 必須 | タイプ | デフォルト値 | パラメータ説明 |
|---|---|---|---|---|
| userCode | はい | string | なし | ユーザーIDまたはユーザー名 |
- リクエスト例:
curl --location 'http://localhost/v1/openapi/user/123456' \
--header 'Authorization: openapi {access_token}' \
- レスポンスbody:
| フィールド名 | タイプ | 説明 |
|---|---|---|
data | object | レスポンスデータオブジェクト |
data.id | string | アカウントID |
data.userId | string | ユーザーID |
data.userName | string | ユーザー名 |
data.Active | boolean | 有効かどうか |
data.Avatar | string | アバター |
data.Birthday | string | 誕生日 |
data.Created | string | ユーザーデータ作成日 |
data.Modified | string | ユーザーデータ最終更新日 |
data.Description | string | 説明 |
data.Gender | number | 性別 0:女性, 1:男性 |
data.MobilePhone | string | 携帯番号 |
data.NickName | string | ニックネーム |
data.Email | string | メールアドレス |
data.JoinTime | string | 入社日 |
data.Region | string | 地域 |
data.WeChat | string | WeChat番号 |
data.Spell | string | 本名のピンイン |
data.SerialNumber | string | 社員番号 |
data.AccountId | string | ユーザー所属アカウントID |
data.Sort | number | ソート番号 |
data.OfficePhoneNumber | string | オフィス電話番号 |
data.External | boolean | 内部/外部ユーザー識別 false: 内部ユーザー, true: 外部ユーザー |
data.IsAad | boolean | アカウントがAAD(microsoft Entra ID)由来かどうか |
data.Enable | boolean | 有効/無効 |
success | boolean | リクエストが成功したかどうか |
msg | string | リクエストの返却メッセージ(ある場合) |
- レスポンス例:
{
"success": true,
"msg": "",
"data": [
{
"accountId": "123456",
"userId": "123456",
"userName": "user1",
"realName": "张三"
}
]
}
現在ログインしているユーザー情報の取得
-
エンドポイント:
v1/openapi/user/me -
リクエストメソッド:
get -
リクエストヘッダー:
| パラメータ名 | 必須 | タイプ | パラメータ説明 |
|---|---|---|---|
| Authorization | はい | string | SERVICEMEアクセストークンを入力。値の形式:openapi {access_token} |
-
Content Type:
application/json -
リクエスト例:
curl --location 'http://localhost/v1/openapi/user/me' \
--header 'Authorization: openapi {access_token}' \
- レスポンスbody:
| フィールド名 | タイプ | 説明 |
|---|---|---|
data | object | レスポンスデータオブジェクト |
data.id | string | アカウントID |
data.userId | string | ユーザーID |
data.userName | string | ユーザー名 |
data.Active | boolean | 有効かどうか |
data.Avatar | string | アバター |
data.Birthday | string | 誕生日 |
data.Created | string | ユーザーデータ作成日 |
data.Modified | string | ユーザーデータ最終更新日 |
data.Description | string | 説明 |
data.Gender | number | 性別 0:女性, 1:男性 |
data.MobilePhone | string | 携帯番号 |
data.NickName | string | ニックネーム |
data.Email | string | メールアドレス |
data.JoinTime | string | 入社日 |
data.Region | string | 地域 |
data.WeChat | string | WeChat番号 |
data.Spell | string | 本名のピンイン |
data.SerialNumber | string | 社員番号 |
data.AccountId | string | ユーザー所属アカウントID |
data.Sort | number | ソート番号 |
data.OfficePhoneNumber | string | オフィス電話番号 |
data.External | boolean | 内部/外部ユーザー識別 false: 内部ユーザー, true: 外部ユーザー |
data.IsAad | boolean | アカウントがAAD(microsoft Entra ID)由来かどうか |
data.Enable | boolean | 有効/無効 |
success | boolean | リクエストが成功したかどうか |
msg | string | リクエストの返却メッセージ(ある場合) |
- レスポンス例:
{
"success": true,
"msg": "",
"data": [
{
"accountId": "123456",
"userId": "123456",
"userName": "user1",
"realName": "张三"
}
]
}
現在ログインしているユーザーのロールを取得する
-
説明: ユーザーが所属する組織のロールは含まれず、データ権限が付与されていないロールも含まれません(通常、スーパ管理者以外はこのようなケースはありません)
-
APIエンドポイント:
v1/openapi/user/me/roles -
HTTPメソッド:
get -
リクエストヘッダー:
| パラメータ名 | 必須 | 型 | 説明 |
|---|---|---|---|
| Authorization | は | string | SERVICEMEアクセストークンを指定。値の形式:openapi {access_token} |
-
Content Type:
application/json -
リクエスト例:
curl --location 'http://localhost/v1/openapi/user/me/roles' \
--header 'Authorization: openapi {access_token}' \
- レスポンスボディ:
| フィールド名 | 型 | 説明 |
|---|---|---|
data | array | レスポンスデータオブジェクト |
data.roleId | string | ロールID |
data.roleName | string | ロール名 |
data.dataPermissionList | array | ユーザーがこのロールにおけるデータ権限 |
data.dataPermissionList.BusinessTreeType | number | アプリケーションタイプ |
data.dataPermissionList.DataPermissionObjectId | string | データ権限オブジェクトID。例えばナレッジベース権限の場合はそのナレッジベースのID |
success | boolean | リクエスト成功の有無 |
msg | string | リクエストのメッセージ(あれば) |
- レスポンス例:
{
"success": true,
"msg": "",
"data": [
{
"roleId": "123456",
"roleName": "ナレッジベース訪問者",
"dataPermissionList": [
{
"BusinessTreeType": 1,
"DataPermissionObjectId": "123456"
}
]
}
]
}
ユーザーに関連付けられているロールを取得する
-
APIエンドポイント:
v1/openapi/user/{userCode}/roles -
HTTPメソッド:
get -
リクエストヘッダー:
| パラメータ名 | 必須 | 型 | 説明 |
|---|---|---|---|
| Authorization | は | string | SERVICEMEアクセストークンを指定。値の形式:openapi {access_token} |
- Content Type:
application/json - ルートパラメータ:
| パラメータ名 | 必須 | 型 | デフォルト値 | 説明 |
|---|---|---|---|---|
| userCode | は | string | なし | ユーザーIDまたはユーザー名 |
- リクエスト例:
curl --location 'http://localhost/v1/openapi/user/123456/roles' \
--header 'Authorization: openapi {access_token}' \
- レスポンスボディ:
| フィールド名 | 型 | 説明 |
|---|---|---|
data | array | レスポンスデータオブジェクト |
data.roleId | string | ロールID |
data.roleName | string | ロール名 |
data.dataPermissionList | array | ユーザーがこのロールにおけるデータ権限 |
data.dataPermissionList.BusinessTreeType | number | アプリケーションタイプ |
data.dataPermissionList.DataPermissionObjectId | string | データ権限オブジェクトID。例えばナレッジベース権限の場合はそのナレッジベースのID |
success | boolean | リクエスト成功の有無 |
msg | string | リクエストのメッセージ(あれば) |
- レスポンス例:
{
"success": true,
"msg": "",
"data": [
{
"roleId": "123456",
"roleName": "ナレッジベース訪問者",
"dataPermissionList": [
{
"BusinessTreeType": 1,
"DataPermissionObjectId": "123456"
}
]
}
]
}
ユーザーロール関係の変更
-
APIエンドポイント:
v1/openapi/user/{userCode}/roles -
HTTPメソッド:
put -
リクエストヘッダー:
| パラメータ名 | 必須 | 型 | 説明 |
|---|---|---|---|
| Authorization | は | string | SERVICEMEアクセストークンを指定。値の形式:openapi {access_token} |
- Content Type:
application/json - ルートパラメータ:
| パラメータ名 | 必須 | 型 | デフォルト値 | 説明 |
|---|---|---|---|---|
| userCode | は | string | なし | ユーザーIDまたはユーザー名 |
- リクエストボディ:
| パラメータ名 | 必須 | 型 | デフォルト値 | 説明 |
|---|---|---|---|---|
| は | array | なし | ロールID配列またはロール名配列。配列内はすべてIDかすべて名前で統一してください。 |
- リクエスト例:
curl --location 'http://localhost/v1/openapi/user/123456/roles' \
--header 'Authorization: openapi {access_token}' \
{
["1","3","5"]
}
- レスポンスボディ:
| フィールド名 | 型 | 説明 |
|---|---|---|
data | array | レスポンスデータオブジェクト |
data.roleId | string | ロールID |
data.roleName | string | ロール名 |
data.dataPermissionList | array | ユーザーがこのロールにおけるデータ権限 |
data.dataPermissionList.BusinessTreeType | number | アプリケーションタイプ |
data.dataPermissionList.DataPermissionObjectId | string | データ権限オブジェクトID。例えばナレッジベース権限の場合はそのナレッジベースのID |
success | boolean | リクエスト成功の有無 |
msg | string | リクエストのメッセージ(あれば) |
- レスポンス例:
{
"success": true,
"msg": "",
"data": [
{
"roleId": "123456",
"roleName": "ナレッジベース訪問者",
"dataPermissionList": [
{
"BusinessTreeType": 1,
"DataPermissionObjectId": "123456"
}
]
}
]
}
組織
組織の追加
-
APIエンドポイント:
v1/openapi/organization -
HTTPメソッド:
post -
リクエストヘッダー:
| パラメータ名 | 必須 | 型 | 説明 |
|---|---|---|---|
| Authorization | は | string | SERVICEMEアクセストークンを指定。値の形式:openapi {access_token} |
- Content Type:
application/json - リクエストボディ:
| パラメータ名 | 必須 | 型 | デフォルト値 | 説明 |
|---|---|---|---|---|
code | は | string | なし | 組織コード。システム内で一意で重複不可 |
parentId | いいえ | string | なし | 親組織IDまたは親組織コードのいずれかを必須 |
parentCode | いいえ | string | なし | 親組織コードまたは親組織IDのいずれかを必須 |
name | は | string | なし | 名称 |
location | いいえ | string | なし | 住所 |
remarks | いいえ | string | なし | 備考 |
contact | いいえ | string | なし | 連絡先 |
Info | いいえ | string | なし | 組織情報 |
Extension | いいえ | string | なし | 拡張情報 |
IsSubsidiary | いいえ | boolean | false | 子会社かどうか |
sort | いいえ | number | 0 | ソート順 |
isEnable | いいえ | boolean | false | 有効/無効 |
external | いいえ | boolean | false | 内部/外部組織識別。false: 内部, true: 外部 |
- リクエスト例:
curl --location 'http://localhost/v1/openapi/organization' \
--header 'Authorization: openapi {access_token}' \
--data '{
"code": "123456",
"parentId": "12345",
"name": "組織名",
"location": "住所"
} '
- レスポンスボディ:
| フィールド名 | 型 | 説明 |
|---|---|---|
data | object | レスポンスデータオブジェクト |
data.id | string | 組織ID |
data.code | string | 組織コード |
data.parentId | string | 親組織ID |
data.parentName | string | 親組織名 |
data.name | string | 名称 |
data.location | string | 住所 |
data.remarks | string | 備考 |
data.contact | string | 連絡先 |
data.Info | string | 組織情報 |
data.Extension | number | 拡張情報 |
data.IsSubsidiary | boolean | 子会社かどうか |
data.sort | number | ソート順 |
data.isEnable | boolean | 有効/無効 |
data.external | boolean | 内部/外部組織識別 |
success | boolean | リクエスト成功の有無 |
msg | string | リクエストのメッセージ(あれば) |
- レスポンス例:
{
"success": true,
"msg": "",
"data": [
{
"id": "123456",
"code": "123456",
"parentId": "12345",
"name": "組織名",
"location": "住所"
}
]
}
組織の更新
-
APIエンドポイント:
v1/openapi/organization -
HTTPメソッド:
put -
リクエストヘッダー:
| パラメータ名 | 必須 | 型 | 説明 |
|---|---|---|---|
| Authorization | は | string | SERVICEMEアクセストークンを指定。値の形式:openapi {access_token} |
- Content Type:
application/json - リクエストボディ:
| パラメータ名 | 必須 | 型 | デフォルト値 | 説明 |
|---|---|---|---|---|
id | いいえ | string | なし | 組織IDまたはコードのいずれかを必須 |
code | いいえ | string | なし | 組織コードまたはIDのいずれかを必須 |
parentId | いいえ | string | なし | 親組織IDまたは親組織コードのいずれかを必須 |
parentCode | いいえ | string | なし | 親組織コードまたは親組織IDのいずれかを必須 |
name | は | string | なし | 名称 |
location | いいえ | string | なし | 住所 |
remarks | いいえ | string | なし | 備考 |
contact | いいえ | string | なし | 連絡先 |
Info | いいえ | string | なし | 組織情報 |
Extension | いいえ | string | なし | 拡張情報 |
IsSubsidiary | いいえ | boolean | false | 子会社かどうか |
sort | いいえ | number | 0 | ソート順 |
isEnable | いいえ | boolean | false | 有効/無効 |
external | いいえ | boolean | false | 内部/外部組織識別。false: 内部, true: 外部 |
- リクエスト例:
curl --location 'http://localhost/v1/openapi/organization' \
--header 'Authorization: openapi {access_token}' \
--data '{
"code": "123456",
"parentId": "12345",
"name": "組織名",
"location": "住所"
} '
- レスポンスボディ:
| フィールド名 | 型 | 説明 |
|---|---|---|
data | object | レスポンスデータオブジェクト |
data.id | string | 組織ID |
data.code | string | 組織コード |
data.parentId | string | 親組織ID |
data.parentName | string | 有効かどうか |
data.name | string | 名称 |
data.location | string | 住所 |
data.remarks | string | 備考 |
data.contact | string | 連絡先 |
data.Info | string | 組織情報 |
data.Extension | number | 拡張情報 |
data.IsSubsidiary | boolean | 子会社かどうか |
data.sort | number | ソート順 |
data.isEnable | boolean | 有効/無効 |
data.external | boolean | 内部/外部組織識別 |
success | boolean | リクエスト成功の有無 |
msg | string | リクエストのメッセージ(あれば) |
- レスポンス例:
{
"success": true,
"msg": "",
"data": [
{
"id": "123456",
"code": "123456",
"parentId": "12345",
"name": "組織名",
"location": "住所"
}
]
}
組織の削除
-
エンドポイント:
v1/openapi/organization -
HTTPメソッド:
delete -
リクエストヘッダー:
| パラメータ名 | 必須 | 型 | 説明 |
|---|---|---|---|
| Authorization | は | string | SERVICEME access tokenを入力。値の形式:openapi {access_token} |
- Content Type:
application/json - リクエストボディ:
| パラメータ名 | 必須 | 型 | デフォルト | 説明 |
|---|---|---|---|---|
| は | array | なし | 組織Id配列または組織Code配列。配列内はIdのみかCodeのみで統一すること。 |
- リクエスト例:
curl --location 'http://localhost/v1/openapi/organization' \
--header 'Authorization: openapi {access_token}' \
--data '['org1','org2']'
- レスポンスボディ:
| フィールド名 | 型 | 説明 |
|---|---|---|
success | boolean | リクエストの成功可否 |
msg | string | リクエストのメッセージ(あれば) |
- レスポンス例:
{
"success": true,
"msg": ""
}
ツリー状組織構造の取得
-
エンドポイント:
v1/openapi/organization/tree -
HTTPメソッド:
get -
リクエストヘッダー:
| パラメータ名 | 必須 | 型 | 説明 |
|---|---|---|---|
| Authorization | は | string | SERVICEME access tokenを入力。値の形式:openapi {access_token} |
- Content Type:
application/json - リクエストクエリパラメータ:
| パラメータ名 | 必須 | 型 | デフォルト | 説明 |
|---|---|---|---|---|
external | いいえ | boolean | false | 外部組織かどうか |
- リクエスト例:
curl --location 'http://localhost/v1/openapi/organization/tree?external=false' \
--header 'Authorization: openapi {access_token}' \
- レスポンスボディ:
| フィールド名 | 型 | 説明 |
|---|---|---|
data | array | レスポンスデータオブジェクト |
data.nodeId | string | 組織ID |
data.nodeName | string | 組織名 |
data.parentNodeId | string | 親組織Id |
data.code | string | 組織コード |
data.path | string | ルートノードから現在ノードまでのパス--ノードを通ったid('/'で区切る) |
data.external | boolean | 内部・外部組織識別 |
data.childNodeList | array | 子組織 |
success | boolean | リクエストの成功可否 |
msg | string | リクエストのメッセージ(あれば) |
- レスポンス例:
{
"success": true,
"msg": "",
"data": [
{
"isExternal": false,
"sort": 1,
"nodeId": "4034994050380595200",
"nodeName": "内部組織",
"path": "4034994050380595200/4419926899526991872",
"parentNodeId": "-1",
"childNodeList": [
{
"isExternal": false,
"sort": 1,
"nodeId": "4419926899526991872",
"nodeName": "IT",
"path": "4034994050380595200/4419926899526991872",
"parentNodeId": "4034994050380595200",
}
]
}
]
}
ユーザー組織関係に基づくユーザー取得(ページネーション)
-
エンドポイント:
v1/openapi/organization/getAllOrgUserPageList -
HTTPメソッド:
post -
リクエストヘッダー:
| パラメータ名 | 必須 | 型 | 説明 |
|---|---|---|---|
| Authorization | は | string | SERVICEME access tokenを入力。値の形式:openapi {access_token} |
- Content Type:
application/json - リクエストボディ:
| パラメータ名 | 必須 | 型 | デフォルト | 説明 |
|---|---|---|---|---|
orderField | は | string | なし | ソートに使用するフィールド。Idは時間情報を含むため、作成日時のソートに利用可能。 |
orderType | は | string | なし | ソートタイプ。asc: 昇順, desc: 降順 |
conditions | いいえ | array | なし | 検索条件。複数指定時はAND条件となる。 |
conditions.fieldName | いいえ | string | なし | 検索条件のフィールド名(例:organizationId) |
conditions.fieldValue | いいえ | string | なし | 検索条件の値 |
conditions.conditionalType | いいえ | number | 0 | 検索条件の比較タイプ。0: 完全一致, 1: あいまい一致, 2: より大きい, 3: 以上, 4: より小さい, 5: 以下, 6: 含む(in), 7: 含まない(not in), 8: 左あいまい, 9: 右あいまい, 10: 不等, 11: nullまたは空, 12: 空でない, 13: notLike |
pageIndex | は | number | なし | ページ番号 |
pageSize | は | number | なし | 1ページあたりの件数 |
- リクエスト例:
curl --location 'http://localhost/v1/openapi/organization/getAllOrgUserPageList' \
--header 'Authorization: openapi {access_token}' \
{
"orderField": "id",
"orderType": "desc",
"conditions": [
{
"fieldName": "organizationName",
"fieldValue": "123456",
"conditionalType": 0
}
],
"pageIndex": 1,
"pageSize": 15
}
- レスポンスボディ:
| フィールド名 | 型 | 説明 |
|---|---|---|
data | array | ページネーションデータ |
data.userId | string | ユーザーID |
data.account | string | ユーザー名 |
data.accountId | boolean | アカウントID |
data.realName | string | 本名 |
data.organizationName | string | 組織名 |
data.organizationId | string | 組織ID |
data.organizationParentId | string | 親組織ID |
data.Email | string | メールアドレス |
data.Sort | number | ソート番号 |
data.External | boolean | 内部・外部ユーザー識別 false: 内部ユーザー, true: 外部ユーザー |
pageIndex | number | 現在のページ番号 |
pageSize | number | ページサイズ |
totalCount | number | 総件数 |
success | boolean | リクエストの成功可否 |
msg | string | リクエストのメッセージ(あれば) |
- レスポンス例:
{
"data": [
{
"account": "user1",
"accountId": "123456",
"userId": "123456",
"realName": "user1",
"organizationName": "org1",
"organizationId": "123456",
"external": false,
"organizationParentId": "12345",
"sort": 1,
"email": ""
}
],
"pageSize": 15,
"pageIndex": 1,
"totalCount": 1,
"success": true,
"msg": null
}
ユーザー組織関係の追加
-
エンドポイント:
v1/openapi/organization/relationship -
HTTPメソッド:
post -
リクエストヘッダー:
| パラメータ名 | 必須 | 型 | 説明 |
|---|---|---|---|
| Authorization | は | string | SERVICEME access tokenを入力。値の形式:openapi {access_token} |
- Content Type:
application/json - リクエストボディ:
| パラメータ名 | 必須 | 型 | デフォルト | 説明 |
|---|---|---|---|---|
organizationId | は | string | なし | 組織Id |
userId | は | string | なし | ユーザーId |
sort | いいえ | number | 0 | ソート番号 |
- リクエスト例:
curl --location 'http://localhost/v1/openapi/organization/relationship' \
--header 'Authorization: openapi {access_token}' \
--data '[{
"organizationId": "123456",
"userId": "12345"
}] '
- レスポンスボディ:
| フィールド名 | 型 | 説明 |
|---|---|---|
success | boolean | リクエストの成功可否 |
msg | string | リクエストのメッセージ(あれば) |
- レスポンス例:
{
"success": true,
"msg": ""
}
ユーザー組織関係の削除
-
エンドポイント:
v1/openapi/organization/relationship -
HTTPメソッド:
delete -
リクエストヘッダー:
| パラメータ名 | 必須 | 型 | 説明 |
|---|---|---|---|
| Authorization | は | string | SERVICEME access tokenを入力。値の形式:openapi {access_token} |
- Content Type:
application/json - リクエストボディ:
| パラメータ名 | 必須 | 型 | デフォルト | 説明 |
|---|---|---|---|---|
organizationIds | は | array | なし | 組織Id |
userIds | は | array | なし | ユーザーId |
- リクエスト例:
curl --location 'http://localhost/v1/openapi/organization/relationship' \
--header 'Authorization: openapi {access_token}' \
--data '{
"organizationIds": ["123456"],
"userIds": ["12345"]
} '
- レスポンスボディ:
| フィールド名 | 型 | 説明 |
|---|---|---|
success | boolean | リクエストの成功可否 |
msg | string | リクエストのメッセージ(あれば) |
- レスポンス例:
{
"success": true,
"msg": ""
}
組織配下のユーザー検索(ページネーション)
-
エンドポイント:
v1/openapi/organization/getUserPages -
HTTPメソッド:
post -
リクエストヘッダー:
| パラメータ名 | 必須 | 型 | 説明 |
|---|---|---|---|
| Authorization | は | string | SERVICEME access tokenを入力。値の形式:openapi {access_token} |
- Content Type:
application/json - リクエストボディ:
| パラメータ名 | 必須 | 型 | デフォルト | 説明 |
|---|---|---|---|---|
orderField | は | string | なし | ソートに使用するフィールド。Idは時間情報を含むため、作成日時のソートに利用可能。 |
orderType | は | string | なし | ソートタイプ。asc: 昇順, desc: 降順 |
conditions | いいえ | array | なし | 検索条件。複数指定時はAND条件となる。 |
conditions.fieldName | いいえ | string | なし | 検索条件のフィールド名。OrganizationIdまたはOrganizationCodeのいずれかを必ず指定すること。 |
conditions.fieldValue | いいえ | string | なし | 検索条件の値 |
conditions.conditionalType | いいえ | number | 0 | 検索条件の比較タイプ。0: 完全一致, 1: あいまい一致, 2: より大きい, 3: 以上, 4: より小さい, 5: 以下, 6: 含む(in), 7: 含まない(not in), 8: 左あいまい, 9: 右あいまい, 10: 不等, 11: nullまたは空, 12: 空でない, 13: notLike |
pageIndex | は | number | なし | ページ番号 |
pageSize | は | number | なし | 1ページあたりの件数 |
- リクエスト例:
curl --location 'http://localhost/v1/openapi/user/pageList' \
--header 'Authorization: openapi {access_token}' \
{
"orderField": "id",
"orderType": "desc",
"conditions": [
{
"fieldName": "OrganizationCode",
"fieldValue": "org1",
"conditionalType": 0
}
],
"pageIndex": 1,
"pageSize": 15
}
- レスポンスボディ:
| フィールド名 | 型 | 説明 |
|---|---|---|
data | array | ページネーションデータ |
data.id | string | ユーザーID |
data.account | string | ユーザー名 |
data.name | string | 本名 |
data.ownerMainDepartment | string | ユーザーの主担当部署 |
data.sort | number | ソート番号 |
data.status | boolean | ユーザーの有効状態 |
data.create | datetime | ユーザーの作成日時 |
pageIndex | number | 現在のページ番号 |
pageSize | number | ページサイズ |
totalCount | number | 総件数 |
success | boolean | リクエストの成功可否 |
msg | string | リクエストのメッセージ(あれば) |
- レスポンス例:
json
{
"data": [
{
"accountId": "123456",
"userId": "123456",
"userName": "user1",
"realName": "張三"
}
],
"pageSize": 15,
"pageIndex": 1,
"totalCount": 1,
"success": true,
"msg": null
}
