updates to support non-mvc http header attributes #135
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is a real fix to the minimal api support. Evidently the
IAsyncResourceFilter
isn't supported outside of MVC. So I had to inject the attributes during the request. To support this, I created two interfaces:IModelOptions
- a marker interface for the different options that can be retrieved from the attirbute.IModelOptionsProvider
- to provide a method for retrieving the options from the attribute.Added code to add a request delegate for the endpoint (if it is a
IModelOptionsProvider
- otherwise we don't need it) and after injecting the data into the HttpContext items, I call the default request delegate. Essentially injecting this code into hte pipeline.Caveat:
We might able to implement this cleaner with an EndpointFilter but that is only support in .NET 7+. Unless you're building specific versions for .NET 6, 7 and 8 - I didn't feel comfortable adding
#if NET7_OR_GREATER
into the codebase.Let me know what you think!