Add support for IEndpointConventionBuilder.Finally
and fix status-code 200 in PublishingEndpoint
#724
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.
During testing, the
PublishingEndpoints
still displayed the OpenAPI documentation for status-code 200, although it should have been removed inPublishingEndpoint<T>.Configure
.The issue seems to come from the timing of the
Configure
method; it is called before the Wolverine default metadata is added to the builder.Specifically,
Configure
is executed within theHttpChain
constructor inapplyAttributesAndConfigureMethods
.However, the default metadata is added later during endpoint construction in
establishResourceTypeMetadata
.Because of that, it's not possible to remove status-codes 200 or 404 in the
Configure
method because they are added afterward.It seems that the ASP.NET Core team ran into the same problem and introduced a
IEndpointConventionBuilder.Finally
method in .NET 7 that allows metadata modifications after the standard processing.This pull request implements this
Finally
method, and fixes thePublishingEndpoint
class to correctly remove status-code 200.This also allows users to remove status-code 404 if they want to.