-
- Notifications
You must be signed in to change notification settings - Fork 137
Open
Labels
kind/bugIndicates an issueIndicates an issue
Description
Actual Behavior
Query parameters with schemas are ignored when Unmarshalling
Expected Behavior
Query parameters matching a query parameter with a schema should be included in Unmarshall results.
Steps to Reproduce
Schema:
openapi: 3.1.0 info: title: Example version: "0.0" servers: - url: 'http://example.com' paths: /: get: parameters: - name: tag.{name} in: query schema: type: object patternProperties: '^tag\.[A-Za-z0-9]+$': type: string pattern: '^[A-Za-z0-9]+$' additionalProperties: false - name: baz in: query schema: type: stringPython script:
from openapi_core import OpenAPI from openapi_core.contrib.requests import RequestsOpenAPIRequest from requests import Request import re oas = OpenAPI.from_file_path('./exampleOas.yaml') req = oas.unmarshal_request(RequestsOpenAPIRequest(Request( "GET", "http://example.com/", params={"tag.foo": "bar", "baz": "bat"}))) print(req) # Returns # RequestUnmarshalResult(errors=[], body=None, parameters=Parameters(query={'baz': 'bat'}, header={}, cookie={}, path={}), security={}) # Prove the regex works print(re.search(r"^tag\.[A-Za-z0-9]+$", "tag.foo")) # Returns # <re.Match object; span=(0, 7), match='tag.foo'>OpenAPI Core Version
0.19.5
OpenAPI Core Integration
requests
Affected Area(s)
unmarshalling
References
Such a pattern is described here and I've had confirmation on the OpenAPI slack here that this is the current best approach to describing pattern-based query parameter names.
This may be related to #250 but isn't completely related as it should work with the query default style of form.
Example of the use case I have for this.
Anything else we need to know?
No response
Would you like to implement a fix?
None
Metadata
Metadata
Assignees
Labels
kind/bugIndicates an issueIndicates an issue