はじめに みなさんはAPIの定義を何で行なってますか? Swagger? GraphQL? gRPC? 私もGraphQLでアプリとBFFのAPI定義をしたり、gRPCで定義してそれを無理やりRESTAPIの型定義として使っていたりします。 方法はどうであれAPIの型定義はやっぱり欲しいですよね。 いくらTypeScriptとかGoとか型のある言語を使っていても、それをつなぐAPIのインターフェースに型を決めておかないといくらでも事故れますよね… 特にフロントエンドとバックエンドで開発するエンジニアが違うと、こういった定義ファイルがないと思ってたのと違うパラメータが返ってきたり、リクエストボディに入れる型を間違ってしまったりという事故が起きたりすると思います。 なので何かしらの定義ファイルをフロントバック両者で定めておいてこういった事故を起きないようにしているわけです。 定義ファイルがある
![trpcって知ってますか?](https://cdn-ak-scissors.b.st-hatena.com/image/square/99d50dcf5f1564e4678147acb896dabab4ca6a1a/height=288;version=1;width=512/https%3A%2F%2Fres.cloudinary.com%2Fzenn%2Fimage%2Fupload%2Fs--dgb8okya--%2Fc_fit%252Cg_north_west%252Cl_text%3Anotosansjp-medium.otf_55%3Atrpc%2525E3%252581%2525A3%2525E3%252581%2525A6%2525E7%25259F%2525A5%2525E3%252581%2525A3%2525E3%252581%2525A6%2525E3%252581%2525BE%2525E3%252581%252599%2525E3%252581%25258B%2525EF%2525BC%25259F%252Cw_1010%252Cx_90%252Cy_100%2Fg_south_west%252Cl_text%3Anotosansjp-medium.otf_37%3Ais_ryo%252Cx_203%252Cy_121%2Fg_south_west%252Ch_90%252Cl_fetch%3AaHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2hpbG5ydzFtdldreWw1NlFsMnhYLW9EMTgwczhkWWw2eEl4YTVYPXMyNTAtYw%3D%3D%252Cr_max%252Cw_90%252Cx_87%252Cy_95%2Fv1627283836%2Fdefault%2Fog-base-w1200-v2.png)