APIエンドポイント一覧

SURP MDM APIで利用可能なすべてのエンドポイントのリファレンスです。


📋 概要

ベースURL: https://mdm.surp.tech/api/v1


🔑 認証

すべてのエンドポイントで認証が必要です:

Authorization: Bearer YOUR_API_KEY

📚 マスター定義

マスター定義一覧の取得

GET /definitions

クエリパラメータ:

  • skip (整数): スキップする件数(デフォルト: 0)
  • limit (整数): 取得する件数(デフォルト: 100)

必要なスコープ: read

レスポンス: 200 OK


特定のマスター定義の取得

GET /definitions/{master_type}

必要なスコープ: read

レスポンス: 200 OK


マスター定義の作成

POST /definitions

必要なスコープ: write

リクエストボディ:

{
  "master_type": "department",
  "master_type_label": "部署マスター",
  "description": "組織の部署情報",
  "schema": {
    "fields": [...]
  }
}

レスポンス: 201 Created


マスター定義の更新

PUT /definitions/{master_type}

必要なスコープ: write

レスポンス: 200 OK


マスター定義の削除

DELETE /definitions/{master_type}

必要なスコープ: delete

レスポンス: 200 OK


📊 マスターデータ

データ一覧の取得

GET /masters/{master_type}

クエリパラメータ:

  • skip (整数): スキップする件数
  • limit (整数): 取得する件数
  • search (文字列): 検索キーワード

必要なスコープ: read

レスポンス: 200 OK


特定データの取得

GET /masters/{master_type}/{id}

必要なスコープ: read

レスポンス: 200 OK


データの作成

POST /masters/{master_type}

必要なスコープ: write

リクエストボディ:

{
  "data": {
    "departmentCode": "D001",
    "departmentName": "営業部"
  }
}

レスポンス:

  • 201 Created: データ作成成功
  • 202 Accepted: 承認リクエスト作成(承認が必要な場合)

データの更新

PUT /masters/{master_type}/{id}

必要なスコープ: write

レスポンス: 200 OK または 202 Accepted


データの削除

DELETE /masters/{master_type}/{id}

必要なスコープ: delete

レスポンス: 200 OK または 202 Accepted


データの一括削除

DELETE /masters/{master_type}/bulk

必要なスコープ: delete

リクエストボディ:

{
  "ids": ["id1", "id2", "id3"]
}

レスポンス: 200 OK


📥📤 インポート・エクスポート

CSVエクスポート

GET /masters/{master_type}/export

必要なスコープ: read

レスポンス: 200 OK (CSV形式)


CSVインポート

POST /masters/{master_type}/import

必要なスコープ: write

リクエスト: multipart/form-data

  • file: CSVファイル

レスポンス: 200 OK


📜 変更履歴

変更履歴の取得

GET /masters/{master_type}/{id}/history

必要なスコープ: read

レスポンス: 200 OK


ロールバック

POST /masters/{master_type}/{id}/history/{history_id}/rollback

必要なスコープ: write

レスポンス: 200 OK


✅ 承認ワークフロー

承認リクエスト一覧の取得

GET /approvals

クエリパラメータ:

  • status: pending, approved, rejected
  • requested_by: me (自分の申請のみ)

必要なスコープ: read

レスポンス: 200 OK


承認

POST /approvals/{id}/approve

必要なスコープ: write

リクエストボディ:

{
  "comment": "承認します"
}

レスポンス: 200 OK


却下

POST /approvals/{id}/reject

必要なスコープ: write

リクエストボディ:

{
  "comment": "却下理由"
}

レスポンス: 200 OK


📁 ファイル管理

ファイル一覧の取得

GET /files

必要なスコープ: read

レスポンス: 200 OK


ファイルのアップロード

POST /files/upload

必要なスコープ: write

リクエスト: multipart/form-data

  • file: ファイル

レスポンス: 200 OK


ファイルの削除

DELETE /files/{id}

必要なスコープ: delete

レスポンス: 200 OK


🔍 データカタログ

全マスターのカタログ取得

GET /catalog

必要なスコープ: read

レスポンス: 200 OK


特定マスターのカタログ取得

GET /catalog/{master_type}

必要なスコープ: read

レスポンス: 200 OK


📊 Excel統合API

Excel用データ取得(リレーション展開)

GET /excel/{master_type}

クエリパラメータ:

  • limit: 取得件数
  • offset: オフセット
  • flatten: リレーション展開(デフォルト: true)

必要なスコープ: read

レスポンス: 200 OK


Excel用データ取得(完全フラット化)

GET /excel/{master_type}/flat

必要なスコープ: read

レスポンス: 200 OK


🔗 OData API

ODataサービスドキュメント

GET /odata

必要なスコープ: read

レスポンス: 200 OK


ODataメタデータ

GET /odata/$metadata

必要なスコープ: read

レスポンス: 200 OK (XML形式)


ODataエンティティ取得

GET /odata/{master_type}

クエリパラメータ (OData標準):

  • $filter: フィルター
  • $select: 列選択
  • $orderby: ソート
  • $top: 件数制限
  • $skip: スキップ

必要なスコープ: read

レスポンス: 200 OK


🤖 AI機能

バリデーションルール生成

POST /ai/validation-rules/generate

必要なスコープ: read

リクエストボディ:

{
  "description": "社員番号はE0000の形式",
  "field_name": "employeeId",
  "field_type": "string"
}

レスポンス: 200 OK


👥 ユーザー管理

ユーザー一覧の取得

GET /users

必要なスコープ: read

注意: Admin ロールのみアクセス可能

レスポンス: 200 OK


📈 監査ログ

監査ログの取得

GET /audit/logs

クエリパラメータ:

  • start_date: 開始日時
  • end_date: 終了日時
  • user_id: ユーザーID
  • action: アクション

必要なスコープ: read

注意: Admin ロールのみアクセス可能

レスポンス: 200 OK


⚠️ エラーレスポンス

すべてのエラーは以下の形式で返されます:

{
  "detail": "エラーメッセージ"
}

HTTPステータスコード

ステータス説明
400リクエストが不正
401認証エラー
403権限エラー
404リソースが見つからない
429レート制限超過
500サーバーエラー

🔗 関連ガイド


📞 サポート

APIエンドポイントに関する質問は、よくある質問をご覧いただくか、システム管理者にお問い合わせください。