我正在创建一个API微服务,它使用AWS提供文件存储。我把Swagger和Controller放在一起,我们需要允许用户在Swagger上上传一个文件。问题是我们的控制器被设置为一个接口,而不是一个类,而Google/所以的解决方案并不是为了能够与接口一起工作。为了澄清,我根本不需要操纵文件,只需接受它。我们的内部实现方法会将其发送到S3。
它使用了Java 11、AWS S3、Spring和Swagger 2。我尝试在方法createFile中使用@ApiParam和@FormDataParam,但我得到了两个不同的错误:
@RequestMapping(value = {"v3/registration/documents", "v4/registration/documents"})
@RestController
@Api(
value = "file-storage",
description = "File storage service",
tags = {"file-storage"})
public interface FileController {
@PostMapping(
value = "/{salesPlanAff}",
produces = {MediaType.APPLICATION_JSON_VALUE},
consumes = {MediaType.APPLICATION_JSON_VALUE})
@ApiOperation(value = "Upload a file")
@ApiResponses(
value = {
@ApiResponse(code = 200, message = "Success", response = FileResponseDTO.class),
@ApiResponse(code = 201, message = "Created"),
@ApiResponse(code = 400, message = "Bad Request"),
@ApiResponse(code = 401, message = "Unauthorized"),
@ApiResponse(code = 403, message = "Forbidden"),
@ApiResponse(code = 404, message = "Not Found"),
@ApiResponse(code = 500, message = "Internal Server Error")
})
void createFile(
@PathVariable(required = true, name = "webSessionId") String webSessionId,
@PathVariable(required = false, name = "salesPlanAff") String salesPlanAff);我所期望的是在我的傲慢的页面上有一个按钮允许文件上传,没有预料到在添加文件上传时会有这么多困难。
发布于 2019-10-03 13:44:59
我有一个FileUpload在我的昂首阔步的页面,它的工作就像一个魅力。唯一的区别是我不是在界面上做的.
import org.springframework.web.multipart.MultipartFile;
...
@ApiOperation(value = "Analyse the identifiers in the file")
@RequestMapping(value = "/form", method = RequestMethod.POST, produces = "application/json")
@ResponseBody
public AnalysisResult getPostFile( @ApiParam(name = "file", value = "The file")
@RequestPart MultipartFile file,
HttpServletRequest r) {
UserData ud = controller.getUserData(file);
return controller.analyse(ud, r, file.getOriginalFilename());
}我稍微删掉了这段代码,但是您可以在我们的存储库中找到原始代码。
此外,此代码的工作版本还可以执行测试这里。
谢谢
发布于 2019-10-03 15:28:02
我想出了如何将注解输入,其中一部分来源于打字。对于任何感兴趣的人,以下是解决办法:
public interface FileController {
@PostMapping(
value = "/{salesPlanAff}",
produces = {MediaType.APPLICATION_JSON_VALUE},
consumes = {MediaType.MULTIPART_FORM_DATA_VALUE})
@ApiOperation(value = "Upload a file")
@ApiResponses(
value = {
@ApiResponse(code = 200, message = "Success", response = FileResponseDTO.class),
@ApiResponse(code = 201, message = "Created"),
@ApiResponse(code = 400, message = "Bad Request"),
@ApiResponse(code = 401, message = "Unauthorized"),
@ApiResponse(code = 403, message = "Forbidden"),
@ApiResponse(code = 404, message = "Not Found"),
@ApiResponse(code = 500, message = "Internal Server Error")
})
void createFile(
@PathVariable(required = true, name = "webSessionId") String webSessionId,
@PathVariable(required = false, name = "salesPlanAff") String salesPlanAff,
@ApiParam(required = true, value = "Document to be uploaded")
@RequestPart MultipartFile multipartFile,
@ApiParam(required = true, value = "File Type")
@QueryParam("documentType") String documentType);https://stackoverflow.com/questions/58220067
复制相似问题