Абстрактный класс или интерфейс в моделировании RAML - PullRequest
0 голосов
/ 11 апреля 2019

Можно ли моделировать абстрактный класс или интерфейс с использованием RAML? Если нет, то как мы можем наложить ограничения на супертипы, которые должны определять подтипы?

1 Ответ

0 голосов
/ 11 апреля 2019

Вы можете моделировать супертипы и наследование в следующих типах:

types:
  ResponseNoId:
    properties:
      something1: 
      something2?:
  ResponseId:
    type: ResponseNoId
    properties:
      id:
  Response:
    ResponseNoId|ResponseId

/test:
  get:
    responses:
      200:
        body:
          application/json:
            type: ResponseId

В этом примере ResponseId наследует something1 и something2 от ResponseNoId, но добавляет новое свойство с именем id.

Также Response позволяет использовать любой из ваших ресурсов.В ваших ресурсах вы можете теперь определить type: Response, и это разрешит только один из дочерних типов.

...