表参道.rb #47 〜API〜 参加メモ
表参道.rb #47に参加したので 、発表内容などメモとして残す。表参道.rb #47のテーマはAPI 。
https://omotesandorb.connpass.com/event/133223/
Hello fast_jsonapi
メドピアのエンジニア、Kaoru Hotateさんの発表で、Netflixが公開したfast_jsonapi gem を利用し、json:apiの仕様の説明と、json:apiの仕様として自分たちは利用しないattributeを取り除くため、fast_jsonapi gemに対してモンキーパッチを充てた話。json:apiの仕様はこちら。
fast_jsonapiを使ったぞ
NICORAのエンジニア マスブチヨシキさんの発表。Netflixのfast_jsonapiを利用した話。APIレスポンス用のJSON構造体をObjectから生成するために、jbuilderを利用していた。しかしメンテが辛くなったため、Serializerを利用したいモチベーションが発生した。そこでfast_jsonapiを採用。json:apiによる規約により楽になった点と、SQLへの問い合わせが増えてしまう課題が含まれる点を解説。
SansanさんのEightでのAPI改善話(資料無し)
yudedakoさんによる発表。こちらは資料なし。長年運用を続けてきたAPIに関して、名前空間や、利用方法が変わってきたのでリファクタリングや再定義をしてくというお話である。改善に向き合う方法としてSwaggerを活用。よく利用されるAPIはN+1が起きやすいので検知しやすい仕組みを構築。関連資料として、Googleのリソース設計資料を用いているとのことであった。APIを修正した人に感謝をする行動を取っていたのがとっても良いなと感じた。
OpenAPIによるテスト
sinsokuさんの発表。資料ははてなブログより。
https://sinsoku.hatenablog.com/entry/2019/06/06/204024
Swaggerを利用して、APIのメンテを行う話と、APIエンドポイントからバックエンド == Rails層までリクエストを到達させないためにCloud Frontを利用する話しをしていた。Terraformを利用しDistribusion, Behaviorを管理。ユーザが更新しないリソースはすべてキャッシュするという強めの設定を行うことで運用負荷を減らす話をしていた。
URL設計別にTTLを設定するという設定を施しているので、/settings など、設定を行うAPIに対してはTTLを分けるというやり方をしている。
次回の表参道#48は私用のため参加できず。
https://omotesandorb.connpass.com/event/136761/