2014-11-20 5 views
2

Swagger UI가 입력 필드 대신 허용되는 값의 목록을 표시하는 방법을 알아 내려고하고 있습니다.텍스트 입력 대신 목록으로 사용자 인터페이스 매개 변수를 바꾼다

지금까지 필자는 Swagger의 다른 버전 및 문서와 혼동을 일으킬 수있었습니다. 나는

지금까지이 내가 아는 것입니다 (... 1.2, 2.0, YAML, JSON)하는 인 확실하지 않다 :

  1. 가 어떤 명령을 allowableValues라고하지만 지금까지 내가 이해 Swagger 2.0에서 사용할 수 없음
  2. enum 명령을 찾았지만 제대로 작동하지 못했습니다.
  3. 나는 내가 parameters 섹션에 허용되는 값의 목록을 정의하거나 definitions 섹션
  4. 나는 그것이 내가 (GET/애완 동물/findByTags)를 원하는 같은 선택 필드가 수행하는 petstore example을 발견하는 경우는 잘 모르겠지만, "원시"JSON에서 볼 수있는 한 오래된 Swagger 형식처럼 보입니다.

마지막으로, 여기에 내가 this Swagger editor에서 시도 된 코드 :

swagger: '2.0' 
host: asd.com 
schemes: 
    - http 
info: 
    version: "1.0.0" 
    title: test 

paths: 
    /users: 
    get: 
     parameters: 
     - name: status 
      in: query 
      type: string 
      enum: 
      - online 
      - offline 

     responses: 
     "200": 
      description: Nice 

답변

2

자신감 2.0가 몇 달 전에 발표 된, 그리고 주변의 도구는 점차 사양 자체에 대한 지원을 추가합니다.

사양 형식 자체는 JSON이지만 편집기 도구 (2.0의 새로운 기능)를 사용하면 YAML을 사용하여보다 인간 친화적 인 편집을 할 수 있습니다.

  1. allowableValues의 위치는 Swagger 1.2 또는 2.0의 일부가 아닙니다.
  2. enum은 실제로 필드를 특정 값으로 제한하는 데 사용할 속성 이름입니다.
  3. parameters은 작업 매개 변수 (path, query, header, body 및 formData)를 정의하는 데 사용됩니다. definitions은 일반적으로 API에서 사용되는 모델이지만 배열 및 프리미티브를 나타낼 수있는 스키마 개체에 사용됩니다. enum은 매개 변수 정의 내에서 또는 스키마 개체 정의 내에서 정의를 제한하는 기본 유형 옆에 사용할 수 있습니다.
  4. 현재 Swagger 2.0 애완 동물 상점 사례는 여기에 있습니다 (http://petstore.swagger.wordnik.com/ui). 이 답변을 작성하는 시점에 해당 샘플에는 enum의 용도가 없습니다.

Swagger-2.0의 제한된 값을 보려면 Swagger 2.0의 경우 아직 구현되지 않았습니다. 위에서 언급했듯이 아직 진행 중입니다. repository에서 직접 문제를 열어보십시오.

유효성 측면에서 위에서 붙여 넣은 YAML은 괜찮아 보입니다.

+0

답장을 보내 주셔서 감사합니다. 이제 완전히 기능적인 툴셋을 원한다면 1.2 스펙을 사용해야한다고 생각하니? 나는 여러 곳에서 allowableValues를 보았고 아마도 코드가 잘못되었다고 생각하기 때문에 문맥을 벗어 났을 것입니다. 예 : http://stackoverflow.com/questions/23936140/enum-in-swagger 및 http : // stackoverflow.com/questions/14761424/using-servicestacks-swagger-plugin-how-to-implement-a-string-field-a-list – DannyB

+0

swagger-ui 및 swagger-editor repos https : // github에 게시 된 문제 .com/swagger-api/swagger-ui/issues/736 및 https://github.com/swagger-api/swagger-editor/issues/256 – DannyB

+1

툴링은 항상 진전을 보이고 있으므로 실제로 특히 당신이 스펙을 직접 작성한다면 2.0을 고수하십시오. 1.2 용 편집기는 없습니다. 문제를 열어 주셔서 감사합니다. 'allowableValues'에 관해서는, 첫번째는'enum'으로 변환되는 자바 구현물이고, 두번째 것은 완전히 무효합니다. – Ron