クライアントライブラリ
Manabu2 API は、JSON をやり取りする普通の HTTPS API です。どの言語でも、標準の HTTP クライアントから呼び出せます。
公式の SDK パッケージは現在ありません。型付きのクライアントが必要な場合は、OpenAPI 仕様から生成してください。
1. OpenAPI 仕様とリファレンス
API の仕様は OpenAPI 形式で公開しています。
- OpenAPI 仕様(JSON): https://api.manabu2.com/openapi/v1.json
- 対話的な API リファレンス: https://api.manabu2.com/scalar/v1
■ 仕様からクライアントを生成する例
# .NET (NSwag) nswag openapi2csclient /input:https://api.manabu2.com/openapi/v1.json /output:Manabu2Client.cs # TypeScript (openapi-typescript) npx openapi-typescript https://api.manabu2.com/openapi/v1.json -o manabu2.d.ts # Python (openapi-python-client) openapi-python-client generate --url https://api.manabu2.com/openapi/v1.json
ここに挙げたのはオープンソースの一般的な生成ツールの例で、Manabu2 が提供・保守しているものではありません。
2. HTTP クライアントから直接呼ぶ
サーバー間連携では API キー、利用者の端末で動くアプリでは OAuth のアクセストークンを付けて呼び出します。
C# (.NET)
using var http = new HttpClient { BaseAddress = new Uri("https://api.manabu2.com/") };
http.DefaultRequestHeaders.Add("X-Api-Key", Environment.GetEnvironmentVariable("MANABU2_API_KEY"));
var courses = await http.GetStringAsync("api/v1/courses");
JavaScript / TypeScript
const res = await fetch("https://api.manabu2.com/api/v1/courses", {
headers: { Authorization: `Bearer ${accessToken}` },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
const courses = await res.json();
Python
import os, requests
res = requests.get(
"https://api.manabu2.com/api/v1/courses",
headers={"X-Api-Key": os.environ["MANABU2_API_KEY"]},
timeout=30,
)
res.raise_for_status()
courses = res.json()
キーは環境変数やシークレット管理サービスから読み込み、ソースコードに書かないでください。
3. MCP(AI アシスタントから使う)
MCP に対応した AI アシスタントは、次の URL を登録するだけで Manabu2 に接続できます。
https://api.manabu2.com/mcp
初回接続時に OAuth のサインインと同意画面が表示され、利用者本人の権限の範囲で動きます。API キーで接続することもできます。
4. エラーと再試行
- エラーは RFC 7807 の problem details 形式(title・status・detail)で返ります。
- 429 のときは Retry-After ヘッダーの秒数だけ待ってから再試行してください。
- 書き込みのリクエストに Idempotency-Key ヘッダーを付けると、同じキーでの再送には最初のレスポンスがそのまま返り、二重登録を防げます。