Skip to content

Mixed type array with array of objects in location path  #2276

Closed

Description

@hanumachari

Hello,

I need some help on mixed type array with array of objects in path location. I have defined following schema in yaml file

openapi: 3.0.3
info:
  title: API
  version: 1.0.0
paths:
  "/{param1}":
    get:
      parameters:
        - name: param1
          in: path
          required: true
          style: label
          explode: false
          schema:
            type: array
            items:
              oneOf:
                - $ref: "#/components/schemas/PetByAge"
                - $ref: "#/components/schemas/PetByType"
            example:
              - age: 10
                nickname: john
              - pet_type: sth
                hunts: false
      responses:
        "200":
          description: OK
components:
  schemas:
    PetByAge:
      type: object
      properties:
        age:
          type: integer
        nickname:
          type: string
    PetByType:
      type: object
      properties:
        pet_type:
          type: string
        hunts:
          type: boolean

I used swagger editor to get request URL (GET operation) containing parameter in path location, swagger generated request URL which looks not meaningful and confusing as it contains string "[object]" as a parameter i.e http://10.240.185.191/path/.[object Object].[object Object]

can someone let me know how array of object parameters would be serialized in path location (i.e in URL) in request, so that I can deserialize at server side
swagger

Activity

  1. MikeRalphson commented on Jun 26, 2020

    @MikeRalphson
    Member

    @hanumachari I've edited your example to make it a complete OAS document so it's easier for people to test, let me know if I've made any wrong assumptions.

  2. hanumachari commented on Jun 26, 2020

    @hanumachari
    Author

    @MikeRalphson Thanks a lot :)

  3. handrews commented on Jan 28, 2024

    @handrews
    Member

    @hanumachari if this is still of interest, the problem here is that the OAS only specifies how to handle one level of parameter nesting. Exploded label-style arrays are serialized as each value separated by ., and it looks like the tool you are using serializes objects as [Object object]. The specification does not have an answer here.

    It would be good to at least clarify that this scenario is not supported.

  4. added
    clarificationrequests to clarify, but not change, part of the spec
    param serializationIssues related to parameter and/or header serialization
    on Jan 28, 2024
  5. self-assigned this
    on May 24, 2024
  6. added this to the v3.0.4 milestone on May 24, 2024
  7. handrews commented on May 27, 2024

    @handrews
    Member

    Clarification added in PR #3818

  8. handrews commented on Jun 21, 2024

    @handrews
    Member

    PR merged for 3.0.4 and ported to 3.1.1 in PR #3921 – we now note that representations for array and object properties in the deepObject object are not defined.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

clarificationrequests to clarify, but not change, part of the specparam serializationIssues related to parameter and/or header serialization

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions