16

Is it possible to group multiple parameters to reference them in multiple routes?

For example I have a combination of parameters which I need in every route. They are defined as global parameters. How can I group them?

I think about a definition like this:

parameters:
  MetaDataParameters:
    # Meta Data Properties
    - name: id
      in: query
      description: Entry identification number
      required: false
      type: integer
    
    - name: time_start
      in: query
      description: Start time of flare
      required: false
      type: string
    
    - name: nar
      in: query
      description: Active region number
      required: false
      type: string

And then reference the whole group in my route:

/test/:
  get:
    tags:
      - TEST
    operationId: routes.test
    parameters:
      - $ref: "#/parameters/MetaDataParameters"
    responses:
        200:
          description: OK

Is this possible with Swagger 2.0?

4

2 回答 2

16

This is not possible with Swagger 2.0 or OpenAPI 3.0. I've opened a feature request for this and it is proposed for a future version:

https://github.com/OAI/OpenAPI-Specification/issues/445

于 2015-08-20T09:30:44.020 回答
0

you can point your $ref to middle .yaml file, like this:

//middle.yaml  <-----

- $ref: 'Defaul.yaml#/components/parameters/meta_id'
- $ref: 'Defaul.yaml#/components/parameters/meta_time_start'
- $ref: 'Default.yaml#/components/parameters/meta_nar'

your Default.yaml file should be like this:

//Default.yaml  <-----

components:
  parameters:
    meta_id:
      name: id
      in: query
      description: Entry identification number
      schema:
        type: integer
        example: 1
    meta_time_start:
      name: time_start
      in: query
      schema:
        type: string

finally, your main file should be looks like this:

/test/:
  get:
    tags:
      - TEST
    operationId: routes.test
    parameters:
      $ref: "../parameters/middle.yaml"  <---- external yaml file
    responses:
        200:
          description: OK

NOTE: your $ref should be without -. like in my example

于 2021-07-08T06:15:57.383 回答