HashMap 또는 Generic Object 형식을 모델 섹션에서 정의 할 수있는 방법이 있습니까? 제품을 반품하는 REST 서비스가 있으며 제품에 다른 옵션이있을 수 있습니다. options 프라퍼티는 기본적으로 HashMap이다. id는 옵션 이름이고 그 값은 옵션 값이다.Swagger HashMap 속성 형식
답변
예 가능합니다.
- 열쇠는 항상 문자열이고 정의 할 필요가 없습니다 OpenAPI를에서
(. FKA 자신감은) 2.0 및 3.0, 해시 맵은 항상
<string, something>
맵입니다. - 값 유형은 원하는 값이며
additionalProperties
으로 정의됩니다.{ "key1": "value1", "key2": "value2" }
대응하는 OpenAPI를 2.0 정의됩니다 :
이definitions: StringStringMap: type: object additionalProperties: type: string
는 OpenAPI를 3.0에서 정의가 될 것입니다 :
의 당신이 하나의 같은 <string, string>
해시 맵을 설명하고 싶은 말은하자
01 이
{
"key1": {"someData": "data", "someOtherData": true},
"key2": {"someData": "data2", "someOtherData": false}
}
같은 235, <string, object>
해시 맵은 OpenAPI를 2.0에서이 방법을 정의한다 :
definitions:
ComplexObject:
type: object
properties:
someData:
type: string
someOtherData:
type: boolean
StringObjectMap:
type: object
additionalProperties:
$ref: "#/definitions/ComplexObject"
와 OpenAPI를 3.0을 :
components:
schemas:
ComplexObject:
type: object
properties:
someData:
type: string
someOtherData:
type: boolean
StringObjectMap:
type: object
additionalProperties:
$ref: "#/definitions/ComplexObject"
난 그냥 깊이이 문제를 다루었 part 4 of my OpenAPI (fka Swagger tutorial)에 있습니다.
OpenAPI (fka. Swagger) specification explains briefly this too.
값의 데이터 구조가 모두 ComplexObject 유형 인 경우 유용합니다. 그러나 키의 패턴에 따라 값의 구조가 달라지는 시나리오가 있습니다. JSON 스키마에서는 patternProperties를 사용하여 쉽게 표현할 수 있습니다. 어떻게 OAS/Swagger에서 이것을 표현할 수 있을지에 대한 생각? –
나는 2.0을 사용하고 있습니다.
Swagger의 맛은 무엇입니까? (jax-rs, play, etc.) – Eyal
@Eyal : 우리는 swagger-ui를 사용하고 있으며 같은 문제가 있습니다. 해결책이나 해결 방법이 있습니까? –
@JanHartung 아니요, API에 맵이 너무 많지 않습니다. [이슈 추적 시스템에서이 기능 요청]을 구독하고 싶을 수도 있습니다. (https://github.com/wordnik/swagger- core/issues/244) – Eyal