本文介紹了如何在swagger codegen中處理多種響應/返回類型(204為空,400為非空等)?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我使用的是Openapi 3.0.2版。
我有以下規范來描述我的響應:
responses:
'201':
description:
Created
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: The resource could not be found.
'500':
description: The request failed due to an unexpected server error.
對于大多數響應代碼,我不返回任何響應正文,但對于400響應
代碼,我想返回錯誤對象:
Error:
type: object
properties:
code:
type: string
message:
type: string
required:
- code
- message
當我為此終結點生成Java服務器代碼時,方法的返回類型
是ResponseEntity<Void>
,表示無法返回錯誤對象?
似乎類似于以下問題:
https://groups.google.com/forum/#!topic/swagger-swaggersocket/ygVjA2m5gY0
https://github.com/swagger-api/swagger-codegen/issues/7743
https://github.com/swagger-api/swagger-codegen/issues/4398
我不知道這是不是已經修復的問題,或者是否有解決此問題的方法?
推薦答案
我使用了下面介紹的方法here來解決這個問題:
@Override
public ResponseEntity<Void> deleteThing(...)
{
try {
myService.deleteThing(...);
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
} catch (MyException e) {
throw new ResponseStatusException(HttpStatus.NOT_FOUND, e.getMessage());
}
catch (MyOtherException e) {
throw new ResponseStatusException(HttpStatus.BAD_REQUEST, e.getMessage());
}
}
這篇關于如何在swagger codegen中處理多種響應/返回類型(204為空,400為非空等)?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,