$30 off During Our Annual Pro Sale. View Details »
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
350
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
600
Other Decks in Programming
See All in Programming
AIと協働し、イベントソーシングとアクターモデルで作る後悔しないアーキテクチャ Regret-Free Architecture with AI, Event Sourcing, and Actors
tomohisa
5
18k
NUMA環境とコンテナランタイム ― youki における Linux Memory Policy 実装
n4mlz
1
100
Level up your Gemini CLI - D&D Style!
palladius
1
170
Integrating WordPress and Symfony
alexandresalome
0
120
Reactive Thinking with Signals and the new Resource API
manfredsteyer
PRO
0
160
【CA.ai #3】ワークフローから見直すAIエージェント — 必要な場面と“選ばない”判断
satoaoaka
0
210
Building AI Agents with TypeScript #TSKaigiHokuriku
izumin5210
6
1.2k
TVerのWeb内製化 - 開発スピードと品質を両立させるまでの道のり
techtver
PRO
3
1.4k
手が足りない!兼業データエンジニアに必要だったアーキテクチャと立ち回り
zinkosuke
0
400
関数の挙動書き換える
takatofukui
4
770
これだけで丸わかり!LangChain v1.0 アップデートまとめ
os1ma
6
1.3k
新卒エンジニアのプルリクエスト with AI駆動
fukunaga2025
0
150
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
527
40k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
Agile that works and the tools we love
rasmusluckow
331
21k
Fireside Chat
paigeccino
41
3.7k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.7k
Designing for humans not robots
tammielis
254
26k
Building Applications with DynamoDB
mza
96
6.8k
RailsConf 2023
tenderlove
30
1.3k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
Visualization
eitanlees
150
16k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
What's in a price? How to price your products and services
michaelherold
246
12k
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