Slide 13
Slide 13 text
13
© Sansan, Inc.
Code-first gRPC
コード例: ドメインモデル「User」の Contracts
public interface IUserService
{
[Operation]
Task> GetAsync(GetRequest request, CancellationToken
cancellationToken);
[Operation]
Task>> ListAsync(ListRequest request, CancellationToken
cancellationToken);
[Operation]
Task> CreateAsync(CreateRequest request, CancellationToken
cancellationToken);
[Operation]
Task ResetSettingsAsync(ResetSettingsRequest request, CancellationToken
cancellationToken);
}
・・・
ドメインモデルのインターフェースを先に設計・実装したものを Contracts として、
Nuget のプライベートリポジトリに公開する
こうすることで、ドメインモデルのふるまいを C# で直接的に表現できる
Code-first gRPC の恩恵
- ユースケースから洗い出した登場⼈物
のふるまいを、リソース指向の世界に
置き換えずに直接表現できる
- Contracts を配布すれば「あと、実装す
るだけ」に持っていける
- クライアント-サーバー間のミスマッチ
をなくせる