Module: Gitlab
- Defined in:
- lib/gitlab/grape_openapi/concerns/nullability.rb,
lib/gitlab-grape-openapi.rb,
lib/gitlab/grape_openapi/version.rb,
lib/gitlab/grape_openapi/generator.rb,
lib/gitlab/grape_openapi/models/tag.rb,
lib/gitlab/grape_openapi/models/info.rb,
lib/gitlab/grape_openapi/grape_compat.rb,
lib/gitlab/grape_openapi/tag_registry.rb,
lib/gitlab/grape_openapi/configuration.rb,
lib/gitlab/grape_openapi/models/schema.rb,
lib/gitlab/grape_openapi/models/server.rb,
lib/gitlab/grape_openapi/models/response.rb,
lib/gitlab/grape_openapi/normalized_path.rb,
lib/gitlab/grape_openapi/schema_registry.rb,
lib/gitlab/grape_openapi/models/operation.rb,
lib/gitlab/grape_openapi/models/parameter.rb,
lib/gitlab/grape_openapi/models/path_item.rb,
lib/gitlab/grape_openapi/serializers/time.rb,
lib/gitlab/grape_openapi/concerns/serializable.rb,
lib/gitlab/grape_openapi/request_body_registry.rb,
lib/gitlab/grape_openapi/models/security_scheme.rb,
lib/gitlab/grape_openapi/models/server_variable.rb,
lib/gitlab/grape_openapi/concerns/limit_resolver.rb,
lib/gitlab/grape_openapi/concerns/regex_converter.rb,
lib/gitlab/grape_openapi/converters/tag_converter.rb,
lib/gitlab/grape_openapi/converters/type_resolver.rb,
lib/gitlab/grape_openapi/converters/path_converter.rb,
lib/gitlab/grape_openapi/concerns/constraint_applier.rb,
lib/gitlab/grape_openapi/converters/coercer_resolver.rb,
lib/gitlab/grape_openapi/converters/entity_converter.rb,
lib/gitlab/grape_openapi/converters/response_converter.rb,
lib/gitlab/grape_openapi/concerns/fail_fast_annotatable.rb,
lib/gitlab/grape_openapi/converters/media_type_resolver.rb,
lib/gitlab/grape_openapi/converters/operation_converter.rb,
lib/gitlab/grape_openapi/converters/parameter_converter.rb,
lib/gitlab/grape_openapi/models/request_body/parameters.rb,
lib/gitlab/grape_openapi/converters/request_body_converter.rb,
lib/gitlab/grape_openapi/models/request_body/parameter_schema.rb,
lib/gitlab/grape_openapi/converters/cross_field_validation_resolver.rb
Overview
Documents Grape cross-field param validations by appending a note to each affected parameter's / request-body property's description.
OpenAPI 3.0 has no cross-parameter keyword and Scalar (the renderer) does not
render JSON Schema not/allOf, so these constraints are stated in prose;
Grape enforces them at runtime (HTTP 400).
Each cross-field validator is a CONSTRAINTS entry pairing the validator class
names it carries across supported Grape versions (Grape 3.2 renamed several)
with a note strategy. A strategy receives every group of its kind found on the
route (each group an array of top-level attribute-name strings) and returns
{ param => note }.
The validations read and the Grape 2.x/3.2 shape difference are isolated in GrapeCompat.
Defined Under Namespace
Modules: GrapeOpenapi