クライアントライブラリ

Manabu2 API は、JSON をやり取りする普通の HTTPS API です。どの言語でも、標準の HTTP クライアントから呼び出せます。

公式の SDK パッケージは現在ありません。型付きのクライアントが必要な場合は、OpenAPI 仕様から生成してください。

1. OpenAPI 仕様とリファレンス

API の仕様は OpenAPI 形式で公開しています。

■ 仕様からクライアントを生成する例
# .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 ヘッダーを付けると、同じキーでの再送には最初のレスポンスがそのまま返り、二重登録を防げます。

次: REST API ドキュメント →