Как перезаписать коды статуса в swagger-ui, созданные jooby

У меня есть примерно следующий API с использованием jooby v1.6.8:

class App : Kooby({

  fun functionWhichReturnsUnit() {}

  path("/my/api", () -> {

    /**
     * 
     * Endpoint which returns nothing (status code returned: 204 No Content)
     *
     */
     post("/post/something"){
       functionWhichReturnsUnit();
       Results.noContent();
     }


   /**
    * 
    * Install API Doc and export your HTTP API: 
    */
   use(new ApiTool()
     .swagger("/swagger")
   );
}

У меня проблема в том, что в swagger код состояния возврата конечной точки задается как 200, с типом возврата Result, вместо 204как и ожидалось. Неправильный тип возвращаемого значения не столько проблема, сколько код состояния действительно должен быть правильным.

Вещи, которые я пробовал:

  • @ApiResponse аннотации к функции контроллера игнорируются.
  • Удаление Results.noContent() приводит к правильному коду состояния swagger (204), но сама конечная точка возвращает код состояния 200.
  • В ApiTool modify Функция позволяет нам получить доступ к коду состояния, но не перезаписать его.
  • То же самое для изменения самого объекта swagger

TD;DR: конечная точка возвращается 204, но чванство говорит, что возвращается 200. Как исправить чванство?

0 ответов

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