Поддерживает ли RAML несколько схем ответов для одного и того же типа контента?

В моем проекте все классы POJO расширяют родительский класс. Поскольку у моего контроллера есть один метод, тип возвращаемого значения которого является родительским классом, но на самом деле он возвращает дочерний класс, здесь я использую концепцию полиморфизма, т.е. я типизирую дочерний класс в родительский класс.

В коде генерации RAML: код генератора RAML в основном использует сигнатуру метода контроллера, поскольку сигнатура содержит родительский класс, поэтому он будет генерировать схему Parent, но на самом деле нам нужна схема фактического ответа.

Есть ли добавить две схемы в ответ API RAML? Или есть ли способ получить схему фактического ответа API, где используется концепция полиморфизма?

1 ответ

Подумайте об использовании Union Type и Discriminator. Экземпляр типа объединения должен соответствовать всем ограничениям хотя бы одного связанного типа. Таким образом, экземпляр типа объединения определяется как Phone|Notebook должен быть либо экземпляром Phone или же Notebook (или оба из них). Дискриминатор позволяет выводить конкретный тип отдельного объекта во время выполнения, поэтому он похож на концепцию полиморфизма.

Другие вопросы по тегам