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
ASP.NET Core の OpenAPIサポート
Search
Toshimasa Hashiguchi
January 14, 2025
Programming
0
170
ASP.NET Core の OpenAPIサポート
.NET Conf 2024 Fukuoka x Osaka にてお話させていただいた内容になります。
https://fukuten.connpass.com/event/333954/
Toshimasa Hashiguchi
January 14, 2025
Tweet
Share
More Decks by Toshimasa Hashiguchi
See All by Toshimasa Hashiguchi
PostmanでAPIの動作確認が楽になった話
h455h1
0
540
Other Decks in Programming
See All in Programming
2,500万ユーザーを支えるSREチームの6年間のスクラムのカイゼン
honmarkhunt
6
4.7k
Flutter × Firebase Genkit で加速する生成 AI アプリ開発
coborinai
0
110
Writing documentation can be fun with plugin system
okuramasafumi
0
110
チームリードになって変わったこと
isaka1022
0
160
Amazon Nova Reelの可能性
hideg
0
280
Lookerは可視化だけじゃない。UIコンポーネントもあるんだ!
ymd65536
1
150
盆栽転じて家具となる / Bonsai and Furnitures
aereal
0
3.2k
[JAWS-UG横浜 #79] re:Invent 2024 の DB アップデートは Multi-Region!
maroon1st
1
140
Djangoアプリケーション 運用のリアル 〜問題発生から可視化、最適化への道〜 #pyconshizu
kashewnuts
1
160
functionalなアプローチで動的要素を排除する
ryopeko
1
1.1k
Kubernetes History Inspector(KHI)を触ってみた
bells17
0
170
TokyoR116_BeginnersSession1_環境構築
kotatyamtema
0
100
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
366
19k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
98
18k
Code Reviewing Like a Champion
maltzj
521
39k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.6k
Fireside Chat
paigeccino
34
3.2k
The Pragmatic Product Professional
lauravandoore
32
6.4k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
20
2.4k
A better future with KSS
kneath
238
17k
The Language of Interfaces
destraynor
156
24k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Transcript
ASP.NET Core の OpenAPIサポート 2025/1/11 .NET Conf 2024 Fukuoka x
Osaka
None
Toshimasa Hashiguchi Alterbooth.inc Webアプリケーション開発 Technology: C#、.NET、Azure、GitHub、XR Community: Fukuoka.NET、福岡XR部 X:@h455h1
OpenAPIの概要 - HTTP API の定義に使用される標準的なフォーマット - API のエンドポイント、リクエスト、レスポンスなどの情報を一貫して記述可能 - 機械にも人間にも優しい
- さまざまな開発者やAPIベンダー、ツールがOpenAPIを使用して連携可能
ASP.NET Core 9.0のOpenAPIサポート - ASP.NET Coreでは、OpenAPIのサポートが組み込まれている - ASP.NET Coreアプリでは、Microsoft.AspNetCore.OpenApiパッケージを使用し て、アプリ内のエンドポイントに関する情報を生成
- 生成されたOpenAPIドキュメントは、エンドポイントまたはシリアル化されたファイル を通して公開
ASP.NET Core 9.0 Web API テンプレート(MinimalAPI) エンドポイントを アプリケーションに追加 DIコンテナーに登録 Microsoft.AspNetCore.OpenApiパッ
ケージを介して提供
ASP.NET Core 9.0 Web API テンプレート(MinimalAPI) エンドポイントを アプリケーションに追加 DIコンテナーに登録 /openapi/v1.json
ASP.NET Core 9.0 Web API テンプレート(MinimalAPI) エンドポイントを アプリケーションに追加 DIコンテナーに登録
ASP.NET Core 8.0 Web API テンプレート との比較 Swaggerジェネレータを サービスコレクションに追加 APIドキュメントと
Swagger UI を提 供するミドルウェアを有効化
なぜSwagger(Swashbuckle )取り除かれたのか? Swaggerジェネレータを サービスコレクションに追加 APIドキュメントと Swagger UI を提 供するミドルウェアを有効化 https://dev.to/eminvergil/an-alternative-to-swagger-in-dotnet-9-2jd6
1. メンテナンスの問題 2. ASP.NET Coreの進化 3. OpenAPIへのフォーカス 4. 代替ツールの提供 5. コミュニティ主導のイノベーションの促進
Swagger(Swashbuckle)を使用する https://learn.microsoft.com/ja-jp/aspnet/core/fundamentals/openapi/using-openapi-documents?view =aspnetcore-9.0&WT.mc_id=%3Fwt.mc_id%3DDT-MVP-5004827#use-swagger-ui-for-local-ad-hoc -testing
ASP.NET Core アプリに OpenAPI メタデータを含める Minimal API Controller Base WebAPI
ビルド時に OpenAPI ドキュメントを生成する - Microsoft.Extensions.ApiDescription.Serverパッケージをインストール - プロジェクトファイルで出力されるAPIドキュメントの場所を指定 - dotnet build
ビルド時に OpenAPI ドキュメントを生成する
CIパイプラインでごにょごにょできるってコト?
GitHub Actionsを使用してWikiのAPIドキュメントを自動更新する APIの更新 ビルド Wiki Push OpenAPI Document Markdown GitHub
Actions
GitHub Actionsを使用してWikiのAPIドキュメントを自動更新する widdershins - OpenAPI仕様からMarkdownへの変換 - https://github.com/Mermade/widdershins
GitHub Actionsを使用してWikiのAPIドキュメントを自動更新する https://github.com/t0ottio13/sample-openapi-document-sync/actions
Demo
まとめ - ASP.NET Coreでは、Microsoft.AspNetCore.OpenApiパッケージと Microsoft.Extensions.ApiDescription.Serverパッケージを使用して、OpenAPIド キュメントの生成がサポートされている - ASP.NET Core Web
API テンプレートからSwashbuckleが削除された - CIパイプラインと組み合わせるとAPIドキュメントの自動生成ができる
おまけ1:.httpファイル https://youtu.be/uKm1ho881gk?si=wsEPfTLOzlitHOI2
おまけ:.httpファイル https://youtu.be/uKm1ho881gk?si=wsEPfTLOzlitHOI2 @name を使用するとリクエスト結果を変数に格納できる
おまけ:.httpファイル @nameで定義した変数へのアクセス方法 The expression should adhere to the following pattern:
{{requestName.(response|request).(body|headers).(*|JSONPath|XPath|Header Name)}}. https://youtu.be/uKm1ho881gk?si=wsEPfTLOzlitHOI2
ご清聴ありがとうございました。
References - https://learn.microsoft.com/ja-jp/aspnet/core/release-notes/aspnetcore-9.0?vie w=aspnetcore-9.0#openapi - https://learn.microsoft.com/ja-jp/aspnet/core/tutorials/getting-started-with-swa shbuckle?view=aspnetcore-7.0&tabs=visual-studio - https://devblogs.microsoft.com/dotnet/dotnet9-openapi/ -
https://dev.to/eminvergil/an-alternative-to-swagger-in-dotnet-9-2jd6 - https://youtu.be/ooP0vkST3X8?si=vuotRdxOGkMx5X4T - https://learn.microsoft.com/ja-jp/aspnet/core/fundamentals/openapi/using-ope napi-documents?view=aspnetcore-9.0&WT.mc_id=%3Fwt.mc_id%3DDT-MV P-5004827#use-swagger-ui-for-local-ad-hoc-testing