REST API ドキュメント
本ページでは、LMS プラットフォームの REST API 仕様をまとめています。 認証、エンドポイント一覧、リクエスト/レスポンス形式、サンプルコードを含みます。 API は主に「外部システム連携」「社内の自動化」「RAG データ更新」などに利用できます。
1. API 認証方式
API はすべて Bearer Token(Microsoft Entra ID) による認証が必要です。
Authorization: Bearer <access_token>
トークンは以下の 2 種類の方法で取得可能です。
- ① OAuth2 / OIDC(標準 Web ログイン)
- ② On-Behalf-Of(Teams SSO → API 連携)
アクセストークンの Audience(aud)は api://{ClientId} です。
2. ベース URL
GET / POST / PUT / DELETE
https://api.yourdomain.com/
※ 実際の環境によって異なります。
3. エンドポイント一覧
| カテゴリ | メソッド | URL | 概要 |
|---|---|---|---|
| プロジェクト | GET | /api/projects | プロジェクト一覧取得 |
| プロジェクト | POST | /api/projects | プロジェクト新規作成 |
| プロジェクト | PUT | /api/projects/{projectId} | プロジェクト更新 |
| プロジェクト | DELETE | /api/projects/{projectId} | プロジェクト削除 |
| タスク | GET | /api/tasks | タスク一覧取得 |
| タスク | POST | /api/tasks | タスク新規作成 |
| ユーザー | GET | /api/users | ユーザー一覧取得 |
| RAG | POST | /api/rag/index | インデックス再構築(ジョブ起動) |
4. リクエスト / レスポンス例
■ プロジェクト一覧取得
GET /api/projects
レスポンス例:
[
{
"id": "PRJ-1001",
"name": "AIリテラシー導入プロジェクト",
"status": "Active",
"members": ["yamada@company.com", "suzuki@company.com"],
"createdAt": "2025-01-10T12:30:00Z"
},
{
"id": "PRJ-1002",
"name": "RAG 活用 PoC",
"status": "Planning",
"members": ["kato@company.com"],
"createdAt": "2025-02-01T08:20:00Z"
}
]
■ プロジェクト作成
POST /api/projects
リクエスト例:
{
"name": "新規 AI 活用プロジェクト",
"description": "営業部向け業務改善",
"owner": "yamada@company.com"
}
レスポンス例:
{
"id": "PRJ-1010",
"name": "新規 AI 活用プロジェクト",
"status": "Active",
"createdAt": "2025-03-01T10:00:00Z"
}
5. エラーレスポンス
全 API は以下のエラーフォーマットで返します。
{
"error": "Unauthorized",
"message": "アクセストークンが無効です。",
"status": 401
}
よくあるステータスコード
- 400 — Bad Request(バリデーションエラー)
- 401 — Unauthorized(アクセストークンなし / 無効)
- 403 — Forbidden(ロール権限不足)
- 404 — Not Found
- 500 — Server Error
6. SDK / クライアント例
JavaScript / C# / Python などの SDK は順次公開予定です。
■ JavaScript(fetch)
const res = await fetch("/api/projects", {
headers: {
"Authorization": "Bearer " + accessToken
}
});
const data = await res.json();
console.log(data);
■ C#(HttpClient)
var client = new HttpClient();
client.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", accessToken);
var res = await client.GetAsync("/api/projects");
var json = await res.Content.ReadAsStringAsync();