Session
Goodbye Swashbuckle: Exploring Native .NET OpenAPI
If you've been using Swashbuckle and Swagger UI with ASP.NET APIs, you may have noticed a change starting in .NET 9: the tooling you have relied on for years has disappeared... When I first ran into this, it felt unsettling. Until it made sense. Microsoft introduced first-party OpenAPI support with Microsoft.AspNetCore.OpenApi, reducing dependencies and making API documentation much simpler. Swashbucklecan still be included as NuGet, but I'll try to convince you why you might want to make the switch.
I'll walk through what these changes mean in practice: the shift from Swashbuckle filters to document, operation, and schema transformers, Among other things, we will separate public from private APIs in different openapi files, wire up OAuth authentication, configuring API versioning. I'll highlight my favorite .NET 10 additions, including OpenAPI spec generation at build time, OpenAPI 3.1 support (with a caveat on when *not* to use it), multiple output formats. We finish by exploring the Scalar testing UI, which stays responsive with large payloads and does not make you want to reach for Postman.
Through a series of live demos, you'll see how I migrated a production API project away from Swashbuckle, tackled the gotchas that nobody warns you about, and ended up with an API setup with less ceremony, cleaner docs, and one fewer dependency.
Whether you are maintaining an existing Swashbuckle setup or starting fresh, you will leave with a clear migration path and a set of patterns ready to apply the next morning!
Casper Dijkstra
.NET Developer & Azure Architect
Utrecht, The Netherlands
Links
Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.
Jump to top