0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

protobuf.devのAPI Best Practicesを読んでいく全部俺Advent Calendar 2024

Day 20

API Best Practices ~各RPCメソッドに対してユニークなリクエストとレスポンスを作成する

Posted at

各RPCメソッドに対してユニークなリクエストとレスポンスを作成する

各RPCメソッドに対して、ユニークなリクエストとレスポンスを作成してください。
後からトップレベルのリクエストやレスポンスを分岐するのはコストがかかります。
これには「空の」レスポンスも含まれます。
well-known Emptyメッセージタイプを再利用するのではなく、ユニークな空のレスポンスプロトを作成してください。

メッセージの再利用

メッセージを再利用するには、複数のリクエストとレスポンスプロトに含める共有「ドメイン」メッセージ型を作成します。
リクエストとレスポンスの型ではなく、これらの型の観点からアプリケーションロジックを記述します。

message ListHogeResponse {
  repeated Hoge hoges = 1;
  string next_page_token = 2;
}

// ドメインメッセージ型 これを再利用する
message Hoge {
    string id = 1;
    string name = 2;
}

これにより、メソッドのリクエスト/レスポンス型を独立して進化させることができますが、論理的なサブユニットのコードを共有できます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?