swagger を使用して有効なリソース要求に対して 404 を取得しています。Swagger は失敗して 404 を返しますが、Postman は結果を返します。swagger が失敗するパラメーターは authDtls です。このパラメーターに json を渡す必要があります。json を渡すと、404 で失敗しますが、json 以外の入力では正常に動作します。springfox swagger ui バージョン 2.5.0 を使用しています
これは、swagger または springfox のバグですか? 提案してください。
スプリングフォックス Json:
"/swaggerIssueReproduce": {
"post": {
"tags": ["preview-integration-controller"],
"summary": "swaggerIssueReproduce",
"operationId": "swaggerIssueReproduceUsingPOST",
"consumes": ["multipart/form-data"],
"produces": ["application/json"],
"parameters": [{
"name": "sourceArchive",
"in": "formData",
"description": "sourceArchive",
"required": true,
"type": "file"
}, {
"name": "authDtls",
"in": "query",
"description": "authDtls",
"required": true,
"type": "string"
}, {
"name": "mode",
"in": "query",
"description": "mode",
"required": false,
"type": "string"
}],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "string"
}
}
}
}
}
スプリング コントローラー:
@RequestMapping(value= "/swaggerIssueReproduce", method = RequestMethod.POST,
consumes = { MediaType.MULTIPART_FORM_DATA_VALUE },
produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity swaggerIssueReproduce(
@ApiParam(required = true)
MultipartFile sourceArchive,
@RequestParam
String authDtls,
@RequestParam(required = false)
String mode
) {
LOG.info(" sourceArchive ###################" + sourceArchive);
LOG.info(" authDtls ###################" + authDtls);
LOG.info(" mode ###################" + mode);
return new ResponseEntity("{\"_id\":\"Hello World\"}", HttpStatus.OK);
}