Our great sponsors
-
safe-routing
A C# source generator for ASP.NET Core razor pages and MVC controllers which produces strongly-typed identifiers for routes.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
then how about not muddying up your controller/handler with a million attributes for swagger documentation? here's a sample swagger documentation class from nick-chapsas. they can stay away from your handler keeping them lean.
There are other approaches to safe routing, like those that use C# Source Generators
Using the Nuget Package Ardalis.Result for mapping result objects to HTTP Response Codes and associated objects; FastEndpoint has its own way of approaching this problem, which seems to be to hang everything off an "Endpoint" and optionally using Swagger to redundantly describe the route's behavior; this seems like a step backwards from more advanced Web frameworks in other languages. The advantage of Ardalis.Result should be clear - each closed form of Ardalis.Result can have its own knowledge of what it does, and therefore automatically describe the abstract transformations it does on a request. In functional programming, this "abstract transformation" is typically called a monad transformer or Arrow. Once you have a type that describes the abstract transformation, plugging that into Swagger should be straight-forward.
It isn't where it needs to be. Notably, it cannot out-of-the-box handle open generic data types. There's also plenty of issues logged for this library. - Personally, that makes me think the approach is overly complicated and doesn't do its job as well as it should.