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
SHIFT EVOLVE
PRO
July 26, 2021
Business
600
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
37
SHIFTのコミュニティ活動 / 20260828 Yumiko Ohata
shift_evolve
PRO
2
68
AI活用によるレガシーモダナイゼーションとプロジェクトマネジメント / 20260827 Tsukasa Takemura & Takashi Maekawa
shift_evolve
PRO
0
48
兼務の事務局から、組織へ SHIFTのAWSアライアンス立ち上げ記 / 20260807 Satoshi Torano
shift_evolve
PRO
1
66
AIは実装を速くする。では、私たちは何を今作るべきか?-立場を越えてリリースに向き合ったチーム開発の実践 / 20260801 Hiromi Nakaya and Naoki Takahashi
shift_evolve
PRO
3
1.2k
Issue設計から始める仕様駆動開発 / 20260731 Mizuki Hirata
shift_evolve
PRO
1
250
”そのまま移行”からの脱却へ ― AI解析で実現するSAP S/4HANA導入成功メソッド / 20260729 Akio Hane
shift_evolve
PRO
1
57
区民の問い合わせ、AIにどこまで任せる? 品川区×SHIFTが挑む自治体音声AI実証の現在地 / 20260626 Taku Nishizawa and Satoshi Torano
shift_evolve
PRO
1
99
コミュニティを、仕事にした。‐ 学びの場が会社の価値になるまで / 20260724 Ayana Chandler
shift_evolve
PRO
0
140
Other Decks in Business
See All in Business
OR Royalties Inc. - Corporate Presentation, September 2026
orroyalties
0
660
株式会社ナビタイムジャパン 会社紹介資料2026
navitimejapan
PRO
1
2.5k
PMは、ブランドマネージャーになる。 / PM to BrandManager
sninomi1018
1
270
安定公務員みたいな学校から 毎年アップデートされる世界へ
maijun
1
890
“隣のチームの改善の取り組み”を見える化 すれば、チームはもっと良くなると思っていた。同じ部署 19チーム・243件 の取り組みを見える化した記録と、見えてきた 壁と価値
hansodeeeeee
0
170
KEEBHOLIC NAGOYA Vol.2
shakupan
0
160
PLAID ALPHA概要資料_202608
plaid
PRO
0
310
何から手をつける?SmartHRのセキュリティ対策の考え方
smarthr
3
1.4k
20年続く長寿タイトルが、15年目にして売上を伸ばせた理由
gree_tech
PRO
0
1.3k
BLUEDGE(ブルーエッジ)物流向けオーダーメイドSaaSサービス 2026年8月版
bluedge_llc
PRO
1
160
3DC Company Deck v2026
3dc_inc
0
550
SimpleForm 会社紹介資料
simpleform
2
60k
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
510
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Designing for Timeless Needs
cassininazir
1
470
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Ethics towards AI in product and experience design
skipperchong
2
370
My Coaching Mixtape
mlcsv
0
310
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
190
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
370
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
560
Build your cross-platform service in a week with App Engine
jlugia
234
19k
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)
ご清聴ありがとうございました