Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Open API + Railsでテストをいい感じにした話
Search
syumai
July 18, 2019
1
180
Open API + Railsでテストをいい感じにした話
WIPです
syumai
July 18, 2019
Tweet
Share
More Decks by syumai
See All by syumai
Cloudflare Workersで進めるリモートMCP活用
syumai
13
1.9k
Go 1.24でジェネリックになった型エイリアスの紹介
syumai
2
460
StarlingMonkeyを触ってみた話 - 2024冬
syumai
3
420
初めてDefinitelyTypedにPRを出した話
syumai
1
640
利用者視点で考える、イテレータとの上手な付き合い方
syumai
6
830
ECMAScript仕様を読むのに必要な知識 - ダイジェスト版
syumai
8
3.9k
コード生成を活用したgqlgen+dataloaderの実装パターン解説
syumai
7
1k
Goのmultiple errorsについて (2024年4月版)
syumai
5
10k
ECMAScript仕様の読み方ガイド 〜比較演算子編〜
syumai
7
1k
Featured
See All Featured
Thoughts on Productivity
jonyablonski
69
4.7k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2.1k
Designing for humans not robots
tammielis
253
25k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.3k
Statistics for Hackers
jakevdp
799
220k
Building an army of robots
kneath
306
45k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
14
1.5k
Facilitating Awesome Meetings
lara
54
6.4k
A Tale of Four Properties
chriscoyier
159
23k
Product Roadmaps are Hard
iamctodd
PRO
53
11k
4 Signs Your Business is Dying
shpigford
183
22k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Transcript
Open API + Railsでテストをいい感じにした 話 平成.rb 2019/7/18 @__syumai
自己紹介 syumai 平成4年生まれ 前職: 株式会社maricuruにてRailsを使ったAPI開発、React / Vue を使ったフロントエンド開発等を行っていました 現職: 決済系の会社でGoのマイクロサービスを開発しています
はじめに
めっちゃWIPです!
本日のテーマ Open API
Open API or Swagger使ってますか?
Open APIとは? YAML / JSONでAPI Specを書ける Swagger 3.0がそのままOpen API 3.0と呼ばれています
書いたAPI Specから色々生成出来る
生成できるものその1 HTMLのいい感じのドキュメント フォームの送信とかも試せる! (Postman的なやつ)
生成できるものその2 サーバー / クライアントの生成 サーバーのinterfaceや、クライアントライブラリ (言語めっちゃ ある) を自動生成出来る 多言語のクライアントを生成したい時にめちゃくちゃ便利
クライアント生成できる言語 https://github.com/OpenAPITools/openapi-generator Ruby / Node.js / TypeScript / Javaなど色々あります
Open APIのSpecのサンプル
Open APIのドキュメントのサンプル
Open APIを使っている人からよく聞く課題 APIの実装とドキュメントがズレてくる ドキュメントがズレてるから、誰もメンテしなくなる 実装とドキュメントがズレると、自動生成したクライアントが使えなく なる
ドキュメントがズレる理由 APIの実装を行う作業と、ドキュメントを書く作業が分離してしまって いるため これを統合できたら解決するはず!
どう解決したか? テストでRailsのAPIを起動する テストに Open APIで生成したClient を使う
このやり方の良い点 同じSpecから生成したClientをJSで使うとして、 Testさえ通っていれば、Client側から使えるのが保証される!
具体的なやり方 Makefileでテスト起動周りをいい感じに書いていく Railsサーバーの起動 Rspecの実行
デモします!!
ポイント テスト用のRailsサーバーと、Rspecで使うDBを共通にする
つらみ エラーが出た箇所のログ追うのがつらい
ご清聴ありがとうございました!!