ProgramingTip

Swagger / OpenAPI- $ ref를 사용하여 가능한 정의 된 매개 변수 전달

bestdevel 2020. 11. 1. 18:27
반응형

Swagger / OpenAPI- $ ref를 사용하여 가능한 정의 된 매개 변수 전달


같은 변수가 가정 해 보겠습니다 limit. 이 모든 곳에서 업데이트해야 할 경우 모든 곳에서 변경해야하는 고통입니다.

parameters:
    - name: limit
      in: query
      description: Limits the number of returned results
      required: false
      type: number
      format: int32

$ ref를 사용하여 다른 곳에서 정의하고 사용할 수 있습니까? 나는 우연히이 티켓 누군가가 변경하거나 개선하고자하는 제안 제안, 오늘 이미 존재하거나하지 않을 경우 말할 수 없다?


이 기능은 Swagger 2.0에 이미 있습니다. 링크 된 티켓은 기능의 기능에 영향을 미치지 않는 기능에 대해 설명합니다.

최상위 수준 개체 (자신감 개체라고 함)에는 parameters재사용 가능한 매개 변수를 정의 할 수 있는 속성이 있습니다. 매개 변수에 임의의 이름을 지정하고 경로 / 특정 작업에서 참조 할 수 있습니다. 최상위 수준 수준의 변수는 정의 일 뿐이며 사양의 모든 작업에 자동으로 적용됩니다.

여기 ( https://github.com/swagger-api/swagger-spec/blob/master/fixtures/v2.0/json/resources/reusableParameters.json) 에서 이에 대한 예제를 사용할 수 있습니다 .

귀하의 경우 다음을 수행하고 싶습니다.

# define a path with parameter reference
/path:
   get:
      parameters:
         - $ref: "#/parameters/limitParam"
         - $ref: "#/parameters/offsetParam"

# define reusable parameters:
parameters:
   limitParam:
      name: limit
      in: query
      description: Limits the number of returned results
      required: false
      type: integer
      format: int32
   offsetParam:
      name: offset
      in: query
      description: Offset from which start returned results
      required: false
      type: integer
      format: int32

완전성을 위해 OpenAPI (일명 swagger v3) 에서 다음과 같이 표시 됩니다.

openapi: "3.0.0"
servers:
    - url: /v1
      description: local server

paths:
   /path:
      get:
         parameters:
            - $ref: "#/components/parameters/limitParam"

components:
   parameters:
      limitParam:
         name: limit
         in: query
         description: Limits the number of returned results
         required: false
         schema:
            type: integer
            minimum: 10
            default: 10
            multipleOf: 10 # matches 10, 20, ...
            format: int32

참고 URL : https://stackoverflow.com/questions/27005105/swagger-openapi-use-ref-to-pass-a-reusable-defined-parameter

반응형