2016-08-19 2 views
0

(여섯 번) 반복이 반복 패턴 ({various schema})의JSON 스키마 내 프로젝트에 코드를이 패턴은 반복적으로 나타납니다

 type: object 
      properties: 
      total: 
       type: integer 
       description: the count of all items that match the query 
      hits: 
       type: array 
       description: a single page of results 
       items: 
       $ref: '#/definitions/{various schema}' 

안쪽 부분은 각각의 용도에 따라 다릅니다. 나 자신을 반복하기보다는 각각에 대해 공유 코드를 참조하고 싶습니다. 나는 보통 $ref을 사용 하겠지만, 가변 비트 때문에 여기서는 작동하지 않는 것 같습니다.

나를 위해 anyOf 작품을 만들려고했지만, 그것은 단지 objectproperties을 다양 도움이되지만 나는 arrayitems을 변화하기 위해 노력하고있어.

내가 누락 된 자료가 있습니까? 이것을 재사용 가능한 패턴으로 만드는 작은 리팩토링 어쩌면?

답변

1

items 제약을 제외하고 반복 패턴을 정의한 다음 각 변형에서 allOf을 사용할 수 있습니다.

재사용 가능한 스키마가이 방법이 될 것입니다 : 당신이 변화를 정의 할 때

reusable: 
    type: object 
     properties: 
     total: 
      type: integer 
      description: the count of all items that match the query 
     hits: 
      type: array 
      description: a single page of results 

, 당신은 할 재사용 가능한 스키마와 추가적인 제약 조건 추가 allOf의 사용 :

variation1: 
    allOf: 
    - reusable 
    - properties: 
     hits: 
      items: 
      $ref: '#/definitions/variation_schema' 
+0

제공 내 10 줄에서 6 줄로, 여섯 번 반복했다. 내가 원했던 것이 아니라 내가 생각한 것보다 더 낫다. 감사! – bukzor