Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
APIファーストの開発
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
SHIFT EVOLVE
PRO
July 26, 2021
Business
610
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
APIファーストの開発
SHIFT EVOLVE
PRO
July 26, 2021
More Decks by SHIFT EVOLVE
See All by SHIFT EVOLVE
価値実現重視へとシフトした時代を生き抜くには / 20260713 Takeshi Watarai
shift_evolve
PRO
1
63
SHIFTのコミュニティ活動 / 20260828 Yumiko Ohata
shift_evolve
PRO
2
73
AI活用によるレガシーモダナイゼーションとプロジェクトマネジメント / 20260827 Tsukasa Takemura & Takashi Maekawa
shift_evolve
PRO
0
80
兼務の事務局から、組織へ SHIFTのAWSアライアンス立ち上げ記 / 20260807 Satoshi Torano
shift_evolve
PRO
1
74
AIは実装を速くする。では、私たちは何を今作るべきか?-立場を越えてリリースに向き合ったチーム開発の実践 / 20260801 Hiromi Nakaya and Naoki Takahashi
shift_evolve
PRO
3
1.3k
Issue設計から始める仕様駆動開発 / 20260731 Mizuki Hirata
shift_evolve
PRO
1
300
”そのまま移行”からの脱却へ ― AI解析で実現するSAP S/4HANA導入成功メソッド / 20260729 Akio Hane
shift_evolve
PRO
1
78
区民の問い合わせ、AIにどこまで任せる? 品川区×SHIFTが挑む自治体音声AI実証の現在地 / 20260626 Taku Nishizawa and Satoshi Torano
shift_evolve
PRO
1
250
コミュニティを、仕事にした。‐ 学びの場が会社の価値になるまで / 20260724 Ayana Chandler
shift_evolve
PRO
0
140
Other Decks in Business
See All in Business
20260828_15minLT_データ分析10倍時代を考える
doradora09
PRO
0
980
なんとかする力 〜 Android エンジニアからマネージャー、さらにその先へ? 〜
m_coder
2
490
会社説明資料_株式会社イー・コミュニケーションズ
ecoms_ikeda08
0
130
FY2026.6 Impact Report JP
mercari_inc
0
28k
reiwatravel ai era
reiwatravel_0405
0
1k
2026 Fuji Oil Outside Directors’ Roundtable (Japanese version)
tsogo817421
2
190
どうせなら「楽しい仕事」をする
kozotaira
0
360
10年、同じドメインに 浸かる覚悟 / Decade-deep in one domain.
hirokiyamamoto14
PRO
0
260
2026.9_中途採用資料.pdf
superstudio
PRO
5
120k
[2026.09] カルチャーデック|株式会社サイバーリンクス
cyberlinks
0
220
OR Royalties Inc. - Corporate Presentation, September 2026
orroyalties
0
1k
Clarity for Product People
arnekittler
0
750
Featured
See All Featured
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
500
Are puppies a ranking factor?
jonoalderson
2
3.9k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
460
Building AI with AI
inesmontani
PRO
1
1.2k
Designing for Timeless Needs
cassininazir
1
480
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
Building an army of robots
kneath
307
46k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
530
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.6k
Transcript
API主体のアプリケーション開発
About me 名前:川合 亮 所属:株式会社リアルグローブ・オートメーティッド
最近のできごと
きっかけ • APIはあるがドキュメントがない ◦ コードサンプルからどういうリクエストを送ったらいいか試行 ◦ レスポンスは実際に送られてきたデータを見て型をチェック • APIを1つ追加する際に多くの変更が必要 ◦
バグのとき、フロントエンド、バックエンドそれぞれどちらが間違っているか難しい • ドキュメントと実装が乖離している
スキーマファーストをやってみました スキーマファーストとは • API仕様を中心にバックエンド、フロントエンドの開発を並行して行う方法 • OpenAPIを用いることが多い。(RESTful APIをYAML/JSONで定義したもの) • 周辺ツールが発達している ◦
コード生成ツール(API変更時の負担軽減) ◦ モックサーバー、ドキュメント生成
OpenAPIの例 • YAML/JSON形式で記載したテキストファイル • REST API準拠で定義する • リクエスト、レスポンスの型を定義、指定できる • 昔はSwagger、現在最新はv3.1
(v3.0使うほうが無難) OpenAPI Initiative (https://www.openapis.org/) スキーマ設計おすすめサイト (https://future- architect.github.io/articles/20200409/)
OpenAPIの例 Swagger Editor (https://editor.swagger.io/) ReDoc (https://redocly.github.io/redoc/)
APIドキュメントからできることについて APIドキュメン ト コードジェネレータ モックサーバー Goなどのコード • ハンドラなど生成 • 型定義で誤りにくい
モックサーバー • サンプル値のレスポンスを返す APIサーバーが立てれる • APIサーバーを待たずにフロン トエンド開発ができる
OpenAPIの書くときのツール • YAML力が必要 • 長大になりがち
Stoplight Studioについて • GUIで作成できるツール • 構文間違いのお知らせあり • マルチプラットフォーム https://stoplight.io/p/studio/gh/stoplightio/studio
Prismについて • APIドキュメントを元に ◦ モックサーバーの起動 ◦ アプリの動作検証 https://stoplight.io/p/studio/gh/stoplightio/studio
コード生成について • openapi-codegenerator (https://github.com/OpenAPITools/openapi-generator) ◦ おそらくコードジェネレータのデファクトスタンダード ◦ 相当数の言語に対応している ◦ 言語毎の品質はまばら
• kin-openapi (https://github.com/getkin/kin-openapi) ◦ Goのコードジェネレータ ◦ レスポンスのバリデートが実装されている • restful-react (https://www.npmjs.com/package/restful-react) ◦ Reactのfetch部分などのコードジェネレータ ◦ Reactで使うならこちらの方が楽かも その他サポートしているツールリスト https://github.com/OAI/OpenAPI-Specification/blob/main/IMPLEMENTATIONS.md
実際にやってみたこと サンプルアプリケーションを作成 ブログのように記事の一覧、作成を行うシンプルなアプリケーションで利用 バックエンドはGo + echo (oapi-codegen) で実装 フロントエンドはReact +
Typescript (openapi-codegenerator)で実装 APIドキュメントがないアプリケーションでドキュメント作成 コードベースでリクエスト、レスポンスのデータ型をドキュメントにした ReDocなどで他の人が閲覧しやすいようにした
所感 • メリット ◦ バックエンド、フロントエンドからのデータを疑う必要がない ◦ コード生成による変更負担減 ◦ ドキュメントがあるのでどういったデータを送ればいいか連携しやすい •
デメリット ◦ OpenAPIの学習コスト、メンテナンスコスト(GUIツールがあっても) ◦ コード生成ツールの選定に時間がかかる ◦ 周辺ツールを上手く使って開発に組み込む必要がある
OpenAPI ドキュメントが使用できるクラウドサービ ス • AWS ◦ Amazon API Gateway (https://aws.amazon.com/jp/api-gateway/)
• Azure ◦ Azure API Management (https://azure.microsoft.com/ja-jp/services/api-management/) • GCP ◦ Cloud Endpoint (https://cloud.google.com/endpoints)
ご清聴ありがとうございました