API仕様
Bazbiiシステムで提供されるAPIの仕様です。
API概要
プロトコル
BazbiiシステムのAPIは、gRPCで提供されます。Protocol Buffersを使用してAPIを定義し、型安全な通信を実現します。
- APIプロトコル: gRPC (Protocol Buffers)
- 定義ファイル:
packages/proto/bazbii/ - コード生成: Go、TypeScriptで自動生成
認証
- JWT Bearer Token: メタデータ(gRPC headers)で送信
- 認証方式:
Authorization: Bearer <token>形式 - GatewayまたはAPI Serverで検証、ActorIDをcontextに注入
エンドポイント
gRPCサービスは以下のエンドポイントで提供されます:
- 開発環境:
localhost:8080(gRPCポート) - 本番環境:
api.bazbii.app:8080(Cloudflare Tunnel経由) - ステージング環境:
stg-api.bazbii.app:8080(Cloudflare Tunnel経由)
📘 詳細:
- 全環境のURLとサブドメイン構成についてはドメイン運用を参照してください。
- Protocol Buffersの定義についてはProtocol Buffersを参照してください。
API一覧
Authentication
- UserProvisionService: ユーザー認証とプロビジョニング(Provision, Refresh)
Post
- UserPostCommand: 投稿作成(Create)
Feed
定義とツール
- Protocol Buffers: API定義の詳細とコード生成
エラーハンドリング
エラー形式
gRPCでは、google.rpc.Status形式でエラーを返します。
message Status {
int32 code = 1;
string message = 2;
repeated google.protobuf.Any details = 3;
}
エラーコード
gRPC標準のステータスコードを使用します:
- 3 (INVALID_ARGUMENT): 不正なリクエスト(バリデーションエラー)
- 5 (NOT_FOUND): リソースが見つからない
- 7 (PERMISSION_DENIED): 権限不足
- 8 (RESOURCE_EXHAUSTED): レート制限超過
- 13 (INTERNAL): 内部エラー
- 16 (UNAUTHENTICATED): 認証エラー
エラーの詳細
エラーの詳細情報はdetailsフィールドに含まれます。バリデーションエラーの場合、google.rpc.BadRequestが含まれます。
関連ドキュメント
- Protocol Buffers - API定義の詳細
- 開発ガイド - ローカル開発環境