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
Next.js LearnのアプリでDB連携してる箇所をAPI化して、Swagger化してみた
Search
caad TakaraShinya
April 22, 2024
Technology
320
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
S3に関する調査が必要になったときの 効率よく調査できるTips
takarashinya
0
51
生成AIと子どものお手伝い回数管理するWEBアプリ作ってみた
takarashinya
0
87
ホントにあったAmazon_EC2のコワーイ話.pdf
takarashinya
0
120
システム開発におけるドキュメントをできるだけGithub Pagesに集約してみた話
takarashinya
0
3.9k
WordpressにAWS Copilot CLIを利用したら利用事例に掲載してもらえた話
takarashinya
2
410
Other Decks in Technology
See All in Technology
Claude Code並行開発環境の ムダ‧ムラ‧ムリを見直した話
muranakaaa
2
390
現場で使える AWS DevOps Agent 活用ノウハウ - Release Management 機能の検証結果を添えて / AWS DevOps Agent Release Management and Know-How
kinunori
5
840
数値で見る Microsoft MVP 〜Spec Kit と GitHub Copilot Agent で作るデータ可視化ダッシュボード〜
yutakaosada
0
180
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
15
110k
toio・myCobotでフィジカルAIっぽいことを行うための検討(とりあえず調査) / フィジカルAI LT(IoTLTによる開催)
you
PRO
0
240
事業成長とAI活用を止めないデータ基盤アーキテクチャの設計思想
hiracky16
1
790
NYC Summit 2026 におけるAmazon Bedrock AgentCore のアップデート
ren8k
3
300
『モンスターストライク』 の運営に伴走する! データ民主化への 解析グループの3つのアプローチ
mixi_engineers
PRO
0
200
AWS環境のセキュリティ不安を解消した企業事例 ~よくある課題と対策を一挙公開~
asanoharuki
1
270
Master Dataグループ紹介資料
sansan33
PRO
1
4.8k
もう一度考える SRE チームの作り方・育て方 / Rethinking SRE #1: Building and Growing SRE Teams
rrreeeyyy
4
680
AI工学特論: MLOps・継続的評価
asei
11
3.1k
Featured
See All Featured
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
Statistics for Hackers
jakevdp
799
230k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
330
Claude Code のすすめ
schroneko
67
230k
HDC tutorial
michielstock
2
760
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
410
Music & Morning Musume
bryan
47
7.3k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
62
45k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
310
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
230
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 化かなー😅😅😅
ご静聴ありがとうございました❗