TSOA несколько ответов для одного и того же кода состояния

#node.js #typescript #openapi #tsoa

Вопрос:

Я хочу дважды использовать один и тот же код состояния ответа на ошибку для некоторых конечных точек (я не хочу спорить, правильно это или нет). Предположим, у меня есть два разных типа конфликтов, я бы хотел вернуть две отдельные ошибки 409. Это поддерживается начиная с OpenAPI 3, который я использую. Я вижу, как вручную добавить дополнительную схему ошибок в сгенерированный swagger, но я не вижу, как это сделать в TSOA.

TSOA просто покажет ошибку, определенную последней, и опустит все предшествующие ей. Если у меня не может быть нескольких ошибок с одним и тем же кодом в TSOA, могу ли я добавить дополнительный пример ошибки? Здесь я говорю о том, что когда вы загружаете свою спецификацию в редактор, вы получаете выпадающее меню «примеры» — могу ли я добавить сюда свою другую ошибку 409? (см. изображение). введите описание изображения здесь

Вот как я определяю свои ошибки.

 @Response<ErrorBody>('409', 'A 409 error', {
  type: 'https://someurl.com',
  status: 409,
  code: 'error/409-error-one',
  title: 'This is an example',
  detail: 'You should provide error detail',
})
@Response<ErrorBody>('409', 'A 409 error called fred', {
  type: 'https://someurl.com',
  status: 409,
  code: 'error/409-error-one-hundred-and-fifty',
  title: 'This is an example of another error',
  detail: 'You should provide error detail for all errors',
})
 

Таким образом, хотя вышесказанное работает должным образом, поэтому ошибки выводятся правильно, в созданной документации отображается только последняя ошибка для каждого кода состояния.