RubyKaigi 2019でOpenAPI 3について登壇しました

RubyKaigi 2019でOpenAPI 3について登壇しました

2019/04/18-20で行われたRubyKaigi 2019にて、 How to use OpenAPI3 for API developerという内容で発表を行いました。

スライドはこちらになります。

CFPとかは別記事

OpenAPI 3はREST APIをやってるなら使って損しないので、絶対使ったほうがいいよなーと思っています。 実際に業務でかなり使ってますが、クライアントとサーバが別の人だとこういう仕組みを構築しないとすぐに危ない実装になりますし、自分の書いた古いコードとかに対しても役立つのですごく便利です。 発表は前半と最後がOpenAPI 3に興味がある人向け、真ん中がOpenAPI 3を実際に使ってみたい人向けの話で、どちらもそこそこ反響があったようでいい感じの構成だったようです。

追記事項

スライドの最後に付け足していますが、質問で多かったものに対しての回答をつけました。

プロダクションで使っているのか

リクエストバリデーションに関しては使っています。 レスポンスのバリデーションはstagingのみで、productionでは使っていません。

基本的にstagingで正しくrequest/response実装が行われていればproductionでのバリデーションは不要です。 とはいえ、実際にはミスをする可能性や、データによって予期せぬレスポンスになってしまう可能性もあるため、 特にレスポンスに関してはやっていません。 リクエストはパラメータの変換をする機能がcommitteeにあるため、それを使うために有効にしています。

性能はどうなのか

簡単なベンチマークを書きました。コードはこちらです。
https://gist.github.com/ota42y/3ed68a2cb0dc7c98122bdfd1a696ab72

小さいリクエストとしてキーが1つのもの、大きなリクエストとしてキーが合計で2600個のものを用意し、1000回リクエストを送りました。 レスポンスに関しては前述のようにproductionで動かしていないため割愛しています。


1000回分の時間のため、小さいリクエストでは0.2 milliseconds、大きいリクエストでは6 millisecondsとなります。 小さいリクエストの所要時間がほぼcommitteeが入ったことによるオーバーヘッドだと思われます。 大きいリクエストは6 millisecondsかかっていますが、実際にはリクエストは多くて100個程度だと思うので、 ほとんど気にならないレベルだと思います。

その他

今回、発表者だと会社から業務扱い、移動費・宿泊費は出る(はず)なのでとても負担が少なくすみました( ゚∀゚)o彡゚

0日目は午後に付きましたが、出発前も含めてほぼ一日中発表練習をしていました。 また、ESMのナイトクルーズに乗せてもらいましたが、クルーズとか初めてやったのでとも新鮮な体験でした! matzに直接いろいろ聞けたのでそれも良かったです( ゚∀゚)o彡゚

1日目は発表でしたが、たくさん来ていただいてありがとうございました。 350人ぐらいは足を運んでいただけたかなと思います また、オフィシャルパーティーは商店街が想定の10倍ぐらい広くてびっくりしましたね… こんな形でのパーティーとか始めてみました…

2日目はオフィシャルなものには行かず、 #カルパスナイト してました。 サバ尽くしでしたが美味しかったです。

3日目は アフターパーティーに参加させていただきました。 めちゃくちゃオシャレな場所ですごかったです…川には行ってません⊂(・8・)⊃

また、3日間YATAIが出ていて面白かったですね。名前が出たときは何なのかわからなかったんですがこういうこととは思ってなかったのでびっくりしました。

内容としてはどれも面白かったですが、やはり最後のキーノートは毎年聴衆を置き去りにしていくレベルの物が出てきて流石…って感じですね。