メインコンテンツまでスキップ

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

Post

Feed

  • LocalFeed: 位置情報ベースのフィードとタイムライン(List)
  • Heatmap: ヒートマップデータ(GetHeatmap)

定義とツール

エラーハンドリング

エラー形式

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が含まれます。

関連ドキュメント