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
340
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
28
ベトナムと沖縄のEMをやってきたからこそぶっちゃけたいこと
takarashinya
0
48
S3に関する調査が必要になったときの 効率よく調査できるTips
takarashinya
0
62
生成AIと子どものお手伝い回数管理するWEBアプリ作ってみた
takarashinya
0
95
ホントにあったAmazon_EC2のコワーイ話.pdf
takarashinya
0
130
システム開発におけるドキュメントをできるだけGithub Pagesに集約してみた話
takarashinya
0
4.1k
WordpressにAWS Copilot CLIを利用したら利用事例に掲載してもらえた話
takarashinya
2
420
Other Decks in Technology
See All in Technology
今こそ知りたいAmplifyGen2
mkdev10
2
160
LLM機能を自作して分かるSnowflake Cortex AIの強み
nayuts
0
320
AI駆動開発の時代になったのでトヨタ生産方式から見直す
terurou
3
4.5k
スキルを作る、その前に!複数人で使われるスキルを 作るためのプロセス
junkifurukawa
2
350
不可逆な意思決定を避けながら10億超の顧客データを AI Ready にするデータ基盤設計
baseballyama
1
160
The seven pitfalls of AI (revised version)
ufried
0
280
[2026-09-30]ロックンロールは鳴り止まないっ - 信頼性かまってちゃん - 「データ駆動を投げ捨ててまで。」追いかける信頼性改善に向けた取り組みの話
tosite
0
210
AI時代に必要な脅威モデリング― 変化の速度に負けない理解とリスク判断
masakane55
5
1.2k
初対面のメンバーがチームを組み、Claude Codeでゼロからサービスをリリース
mkdev10
0
100
オブザーバビリティを高める AI エージェント体験を考える / Designing AI Agent Experiences That Enhance Observability
aoto
PRO
2
310
Deep Data Security 機能解説
oracle4engineer
PRO
2
720
React Nativeでの OTA Updateって、 どう説明する?
ichiki1023
0
150
Featured
See All Featured
Everyday Curiosity
cassininazir
0
350
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
50
10k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
What the history of the web can teach us about the future of AI
inesmontani
PRO
2
730
WCS-LA-2024
lcolladotor
0
850
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
2
2.2k
Writing Fast Ruby
sferik
630
63k
Technical Leadership for Architectural Decision Making
baasie
3
590
What does AI have to do with Human Rights?
axbom
PRO
1
2.4k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
260
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
720
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
350
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 化かなー😅😅😅
ご静聴ありがとうございました❗