🚀 94sssh
Published on

2026.02.27

[실전 API 설계] - 16. OpenAPI 합성을 사용한 스키마 설계

16.2. 도메인 모델 다형성과 상속

서브타이핑 관계에서는 서브타입이 슈퍼타입을 상속받는다.

16.4. OpenAPI의 다형성과 상속

OpenAPI에는 상속과 관련해 allOf, anyOf,oneOf, not라는 4가지 합성 키워드가 있다.

합성 키워드
  • allOf: 스키마가 다른 여러 스키마의 합성을 통해 정의됨, 다른 스키마의 모든 속성을 가짐. 입력값을 모두 충족해야 유효함.
  • anyOf: 스키마가 다른 여러 스키마의 조합을 통해 정의됨, 다른 스키마 중 하나 이상의 스키마에 있는 속성을 가짐. 입력값이 하나 이상의 스키마에 유효하면 유효함.
  • oneOf: 스키마가 다른 여러 스키마 중 오직 하나의 스키마를 통해 정의됨, 입력값이 하나의 스키마에만 유효해야 함. 이미지에서 검은 동그라미는 2개 이상의 스키마에 유효했으므로 유효하지 않은 것으로 판정.
  • not: not으로 지정된 스키마의 유효성 검증을 통과하지 않아야 유효성이 인정됨.

다음과 같이 요약할 수 있음

  • allOf: AND, 교집합
  • anyOf: OR, 합집합
  • oneOf: XOR, 대칭차집합