- Notifications
You must be signed in to change notification settings - Fork 150
Description
Description
I am attempting to find a solution to this #832, when I found in the openapi docs that I could just use content. in the parameter. I saw in the faq that content is supported in parameters.
When attempting to build. I get this error.
Value of type 'Converter' has no member 'setQueryItemAsJSON'
Cannot infer contextual base in reference to member 'form'
I am attempting to get a parameter with the following style
filters=[{"key":"status","operator":"eq","value":"active"},{"key":"price","operator":"lt","value":"100"}]
Reproduction
Using both array and the ref singular in the schema, get the same error.
internal func getPetById(_ input: Operations.getPetById.Input) async throws -> Operations.getPetById.Output { try await client.send( input: input, forOperation: Operations.getPetById.id, serializer: { input in let path = try converter.renderedPath( template: "/pet/{}", parameters: [ input.path.petId ] ) var request: HTTPTypes.HTTPRequest = .init( soar_path: path, method: .get ) suppressMutabilityWarning(&request) try converter.setQueryItemAsJSON( in: &request, style: .form, explode: true, name: "filters", value: input.query.filters ) converter.setAcceptHeader( in: &request.headerFields, contentTypes: input.headers.accept ) return (request, nil) },openapi: 3.0.3 info: title: Swagger Petstore - OpenAPI 3.0 description: |- This is a sample Pet Store Server based on the OpenAPI 3.0 specification. You can find out more about Swagger at [https://swagger.io](https://swagger.io). In the third iteration of the pet store, we've switched to the design first approach! You can now help us improve the API whether it's by making changes to the definition itself or to the code. That way, with time, we can improve the API in general, and expose some of the new features in OAS3. Some useful links: - [The Pet Store repository](https://github.com/swagger-api/swagger-petstore) - [The source API definition for the Pet Store](https://github.com/swagger-api/swagger-petstore/blob/master/src/main/resources/openapi.yaml) termsOfService: http://swagger.io/terms/ contact: email: apiteam@swagger.io license: name: Apache 2.0 url: http://www.apache.org/licenses/LICENSE-2.0.html version: 1.0.11 externalDocs: description: Find out more about Swagger url: http://swagger.io servers: - url: http://127.0.0.1:3000 tags: - name: pet description: Everything about your Pets externalDocs: description: Find out more url: http://swagger.io paths: /pet/{petId}: get: tags: - pet summary: Find pet by ID description: Returns a single pet operationId: getPetById parameters: - $ref: "#/components/parameters/SearchFiltersQueryOptional" - name: petId in: path description: ID of pet to return required: true example: 0 schema: type: integer format: int64 responses: '200': description: successful operation content: application/json: schema: $ref: '#/components/schemas/Pet' '400': description: Bad Request Error content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: Not found Error content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/Error' '502': description: Bad Gateway Error content: application/json: schema: $ref: '#/components/schemas/Error' components: parameters: SearchFiltersQueryOptional: name: filters in: query description: Filters to refine search required: false content: application/json: schema: type: array items: $ref: "#/components/schemas/Filter" schemas: FilterOperation: description: An operation to filter data from atlas type: string enum: - "=" - "!=" - ">" - ">=" - "<" - "<=" - "contains" - "not_contains" - "begins_with" Filter: description: A full filter to sort data in atlas type: object required: - key - operation - value properties: key: type: string operation: $ref: "#/components/schemas/FilterOperation" value: type: string Error: description: Error message format type: object example: message: I am a teapot code: 412 required: - message - code properties: message: type: string example: teapot code: type: integer example: 412 Pet: description: The pet object that is defined. required: - name - photoUrls type: object example: id: 2 name: Koda photoUrls: - "https://example.com" properties: id: type: integer format: int64 example: 10 name: type: string example: doggie photoUrls: type: array items: type: string generate: - types - client accessModifier: internalPackage version(s)
. ├── swift-argument-parser<https://github.com/apple/swift-argument-parser.git@1.6.2> ├── swift-openapi-runtime<https://github.com/apple/swift-openapi-runtime@1.9.0> │ └── swift-http-types<https://github.com/apple/swift-http-types@1.5.1> ├── swift-openapi-generator<https://github.com/apple/swift-openapi-generator@1.10.3> │ ├── swift-algorithms<https://github.com/apple/swift-algorithms@1.2.1> │ │ └── swift-numerics<https://github.com/apple/swift-numerics.git@1.1.1> │ ├── swift-collections<https://github.com/apple/swift-collections@1.3.0> │ ├── openapikit<https://github.com/mattpolzin/OpenAPIKit@3.9.0> │ │ └── yams<https://github.com/jpsim/Yams@6.2.0> │ ├── yams<https://github.com/jpsim/Yams@6.2.0> │ └── swift-argument-parser<https://github.com/apple/swift-argument-parser.git@1.6.2> └── swift-openapi-urlsession<https://github.com/apple/swift-openapi-urlsession@1.2.0> ├── swift-openapi-runtime<https://github.com/apple/swift-openapi-runtime@1.9.0> │ └── swift-http-types<https://github.com/apple/swift-http-types@1.5.1> ├── swift-http-types<https://github.com/apple/swift-http-types@1.5.1> └── swift-collections<https://github.com/apple/swift-collections@1.3.0>Expected behavior
Would expect the generator to build.
Environment
Apple Swift version 6.2-dev (LLVM 4197ac1672a278c, Swift acbdfef4f4d71b1) Target: arm64-apple-macosx26.0 Build config: +assertionsAdditional information
Trying to follow the example here for using content in the parameter.
https://swagger.io/docs/specification/v3_0/describing-parameters/