2016-10-07 3 views
1

나는 정의 모델을 가지고있다. 이름은 A이다.swagger 2.0 anyOf replacement

A은 여러 유형의 복잡한 객체가 될 수있는 복잡한 객체 인 속성을가집니다. 어떻게하면 2.0을 사용할 수 있습니까? anyOf는 자신감에서 지원되지 않습니다, 나는 여기 discriminator 및 다형성 유형으로 확인했습니다

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

아직 내가 내 필요에 사용할 수있는 방법을 볼 수 없습니다. 가 이미 다형성 유형 (그림) 구축했습니다 :

A 
    type: object 
    properties: 
    father: 
     $ref: '#/definitions/Father' 

답변

1

난 당신이 OpenAPI를/자신감을 기다릴 것 같아요 :

Father: 
     discriminator: fatherType 
    SonA: 
    type: object 
    allOf: 
     - $ref: '#/definitions/Father' 
     - properties: 
      fatherType: 
      type: string 
      enum: 
       - SonA 
      name: 
      type: string 

내 모델 내부에 그것을 사용을 A 예상대로 작동하지 않습니다 사양 3.0 릴리스는 anyOf을 지원합니다.

OpenAPI/Swagger 사양 3.0에 대한 자세한 내용은 Tony Tam의 interview에서 찾을 수 있습니다.

+0

3.0에서 제공된다는 것을 알지만 그때까지 A, B 또는 C 중 하나의 개체가 필요한 이러한 요구 사항에 대한 최선의 선택은 무엇입니까? 빈 객체로 그냥 두어야합니까? 그래서 내 예제 A는 다음과 같이 만 : A type : object – Jorayen

+0

[vendor extensions] (https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#vendorExtensions)은 어떻게 사용합니까?) 당분간, 예를 들면 x-anyOf? –

+0

나는 이것을 사용하고 싶지 않을 것이고, 내가 사용할 툴 세트에 대해 제한적이고 구체적 일 것이다. 내가 그때 기다려야 할 것 같아. – Jorayen