rework conditional loading of the OAS plugins #11585
Merged
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.
Motivation
When we introduced the validation for the internal endpoints based on the OpenAPI specs, we made sure the correspondent plugins and specs wouldn't be loaded if at least one between
OPENAPI_VALIDATE_REQUEST
orOPENAPI_VALIDATE_RESPONSE
.The idea was to avoid this step, when unnecessary.
However, this is an issue if we turn these config variables when the container is already started, and the chain initialized.
In such a case, the calls to the validators fail because the instance variable
open_apis
hasn't been initialized (I came across this while writing some tests).To support the later activation of the validation at runtime, we slightly reworked the loading logic.
Changes
open_apis
attribute and eventually perform the loading.