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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
syumai
July 18, 2019
1
200
Open API + Railsでテストをいい感じにした話
WIPです
syumai
July 18, 2019
Tweet
Share
More Decks by syumai
See All by syumai
tsgolintはいかにしてtypescript-goの非公開APIを呼び出しているのか
syumai
9
2.8k
知られているようで知られていない JavaScriptの仕様 4選
syumai
0
760
CloudflareのSandbox SDKを試してみた
syumai
0
670
実践AIチャットボットUI実装入門
syumai
9
3.9k
ProxyによるWindow間RPC機構の構築
syumai
3
1.5k
CloudflareのChat Agent Starter Kitで簡単!AIチャットボット構築
syumai
2
1k
Go製CLIツールをnpmで配布するには
syumai
3
1.9k
MCPで実現できる、Webサービス利用体験について
syumai
7
2.9k
GoのGenericsによるslice操作との付き合い方
syumai
3
1.1k
Featured
See All Featured
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Ethics towards AI in product and experience design
skipperchong
2
220
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.8k
How GitHub (no longer) Works
holman
316
140k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
640
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
1
1.3k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
60
42k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
470
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.4k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
320
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
0
230
A Tale of Four Properties
chriscoyier
163
24k
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を共通にする
つらみ エラーが出た箇所のログ追うのがつらい
ご清聴ありがとうございました!!