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
Next.js LearnのアプリでDB連携してる箇所をAPI化して、Swagger化してみた
Search
caad TakaraShinya
April 22, 2024
Technology
350
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Next.js LearnのアプリでDB連携してる箇所をAPI化して、Swagger化してみた
caad TakaraShinya
April 22, 2024
More Decks by caad TakaraShinya
See All by caad TakaraShinya
なはんちゅPayで6,000円なくなった話
takarashinya
0
39
ベトナムと沖縄のEMをやってきたからこそぶっちゃけたいこと
takarashinya
0
67
S3に関する調査が必要になったときの 効率よく調査できるTips
takarashinya
0
68
生成AIと子どものお手伝い回数管理するWEBアプリ作ってみた
takarashinya
0
100
ホントにあったAmazon_EC2のコワーイ話.pdf
takarashinya
0
130
システム開発におけるドキュメントをできるだけGithub Pagesに集約してみた話
takarashinya
0
4.1k
WordpressにAWS Copilot CLIを利用したら利用事例に掲載してもらえた話
takarashinya
2
430
Other Decks in Technology
See All in Technology
公共分野での生成AI活用
toru_kubota
1
280
Microsoft Entra Kerberos で実現するクラウド デバイス管理
tamaiyutaro
2
640
PostgreSQL オプティマイザ統計の秘密
nori_shinoda
0
360
[JAWS Festa 2026]一番いい仕事は、請求書に現れない / jawsfesta2026
sh_fk2
2
320
An Introduction to Context Ontology Accelerator (teaching AI agents what your data means)
inariku
PRO
1
100
IBC 2026 動画技術関連レポート / IBC 2026 Report
cyberagentdevelopers
PRO
2
440
新卒エンジニア、 介護士になる
ryu1013
1
690
re:Invent2026 事前勉強会 歴史と愉しみ方10分LT編
toshi_atsumi
0
150
分析作業をどこまで任せるか自分で決められる AIネイティブBI『Golden Analytics』が 良さげな話 /golden-analytics-is-ai-native-bi
shinyaa31
0
120
AWSを利用する上で知っておきたい名前解決の話 2026
nagisa53
5
3.2k
並列度を下げたら速くなった — go build の重複コンパイルを実測で見る
tomoaki25
1
700
コードレビューをなくして見えたもの
henteko
0
140
Featured
See All Featured
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.2k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
880
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
2
970
Technical Leadership for Architectural Decision Making
baasie
3
640
AI: The stuff that nobody shows you
jnunemaker
PRO
10
1.3k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
520
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
590
Design in an AI World
tapps
1
380
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
510
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
320
WCS-LA-2024
lcolladotor
0
980
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
Transcript
Next.js Learn のアプリでDB 連携 してる箇所をAPI 化して、 Swagger 化してみた Shima Tech
Hub #1 # しまてく @takarake
🗣 アジェンダ 1️⃣ 自己紹介 2️⃣ なんでNext.js なの❓ 3️⃣ どうやったの❓ 4️⃣
感想🤔
1️⃣ 自己紹介
1️⃣ 自己紹介( 真面目用)
1️⃣ 自己紹介(X @takarake)
2️⃣ なんでNext.js な の❓
その前に、このQR コードを 読んでください📱
「バッチリですぜ❗👍」と回答された方はどの点でモダンな開発をされてますか❓ 13 votes - 13 participants
皆さん、ご回答ありがとうございました❗
話を戻しまして、なんでNext.js なの❓
開発チームの取り組みの紹介と挑戦した( してる) こと
2021 年 💪 若手向け基礎インフラスキル育成 2022 年 💪 AWS SAA 取得
& チーム関係性強化
2023 年 💪 ノウハウ共有促進 & 組織発信力強化 2024 年 💪 組織体制強化
& メンター育成
現在の課題 💦 若手メンバーも増えたが、まだまだ体制強化が必要 開発相談が増加中 🆙 💦 既存メンバーの言語スキルが異なり、育成が属人化 Ruby 、PHP 、Node.js
、Python など様々
取り組みに至った考え方 🤔 体制強化のため、メンター不足を解消したい 🤔 チーム全体で共通技術を習得し、育成も負荷分散できるようにしよう
2024 年の今、モダンな技術ってなんだ❓🤔
ウチの開発案件にマッチしてる技術ってなんだ❓🤔
調査の結果、下記のような理由から Next.js を選択🙇♀ ゼロコンフィグ機能 最低限の設定を自動でやってくれる ファイルベースルーティング機能 開発にあたり、ルーティング設定が不要でわかりやすい フロントもバックエンドも両方対応でき、API 作成も簡単 利用技術が統一可能
Netflix でも導入されたり、継続して開発が進行 Vercel が メンテナでもあり、今後も進化が期待できる CyberAgent グループでもよく利用され、ノウハウ共有を受けやすい 高度な技術ノウハウ共有も受けられ、育成にも活かせる ※ 弊社では 0 -> 1 で開発する案件が多いことやフロントとバックエンドと複雑化せず、リリース後に引き継ぎが しやすいことも考慮して選定
今年度で上級者を目指す🚀
Next.js Learn をやり、色々いじる👨💻
スマホやデスクトップアプリ化してみたり Next.js Learn のアプリをデスクトップアプリ化とスマホアプリ化してみた #iOS - Qiita
コンテナ化してみたり Next.js のコンテナ化( 開発環境にも、本番環境にも対応する) #Docker - Qiita
ということで、Swagger 化もやってみた👍
3️⃣ どうやったの❓
3️⃣ どうやったの❓ 1. Next.js Learn が完了済みの状態からAPI 化する Next.js 14 のため、App
Router でのAPI 化(Routing: Route Handlers | Next.js を利用) Swagger 化のため、NPM モジュールインストール(差分はこちら👇余計なものも入ってますが、、、、 💦)
3️⃣ どうやったの❓ 2. インストールした next-swagger-doc のGithub のREADME に従い、設定を行う Next.js 13
以降に関しての対応方法が記載されていてハートフル💖 jellydn/next-swagger-doc ` `
3️⃣ どうやったの❓ 3. 下記のように、 app/api/hello/route.ts 内でSwagger Comment を記載する感じ そのため、yaml ファイルは不要で作れる
` ` 1 2 // file: app/api/hello/route.ts 3 /** 4 * @swagger 5 * /api/hello: 6 * get: 7 * description: Returns the hello world 8 * responses: 9 * 200: 10 * description: Hello World! 11 */ 12 export async function GET(_request: Request) { 13 // Do whatever you want 14 return new Response('Hello World!', { 15 status: 200, 16 }); 17 }
3️⃣ どうやったの❓ 4. Next.js Learn のアプリを起動し、Swagger UI を確認 http://localhost:3000/api-doc にアクセスすると、Swagger
UI が表示される ` `
3️⃣ どうやったの❓ 5. ここでちょっとした問題発生💦 Next.js Learn のアプリでAPI 化はされてるが、Swagger Comment 自分で書くの❓💦
API できてるのに、、、、自動化できないのかなー🤔
3️⃣ どうやったの❓ 5. ここでちょっとした問題発生💦 Next.js Learn のアプリでAPI 化はされてるが、Swagger Comment 自分で書くの❓💦
API できてるのに、、、、自動化できないのかなー🤔 ・・・・・・そこに救世主現る❗👀
3️⃣ どうやったの❓ 6. cURL to Swagger 皆さんすでにご存知かもしれませんが、、、、💦 cURL コマンドとその結果からSwagger 形式に変換してくれる👍
3️⃣ どうやったの❓ 7. あとはAPI 化したものをCURL して、cURL to Swagger を使ってSwagger Comment
としてコピペするだけ👍 8. ちゃーんとVercel へもデプロイして、Swagger UI を確認👍 Next Swagger API Example
4️⃣ 感想🤔
4️⃣ 感想🤔 結構簡単にSwagger 化できた👍 利用したGithub リポジトリはこちら 本当はOpenAPI の定義から自動テストを行いたかった💦 k1LoW/runn を利用してのテスト作成自動化を考えてた🤔
次はGithub Pages 化かなー😅😅😅
ご静聴ありがとうございました❗