1

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);
 }
4

0 に答える 0