Я хочу реализовать функцию считывания файлов в моей службе REST. Так как я сам не знаю, как использовать spring, я использую swagger для генерации кода сервера. Обычно это прекрасно работает, но когда я пытаюсь загрузить файлы, я получаю следующую ошибку:
{
"timestamp": "2018-11-07T12:27:43.119Z",
"status": 400,
"error": "Bad Request",
"exception": "org.springframework.web.multipart.support.MissingServletRequestPartException",
"message": "Required request part 'file' is not present",
"path": "/requirements/import"
}
Мой yaml использует следующие строки для функции импорта:
/requirements/import:
post:
consumes:
- multipart/form-data
description:
Returns all requirements contained in the submitted reqIf file.
parameters:
- name: reqIfFile
in: formData
type: file
description: The reqIf file that contains the requirements.
responses:
200:
description: An array of requirements.
schema:
type: array
items:
$ref: 'requirement'
Сгенерированный интерфейс (с некоторыми добавленными исключениями):
@javax.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2018-04-05T07:19:00.887Z")
@Api(value = "requirements", description = "the requirements API")
public interface RequirementsApi {
@ApiOperation(value = "", nickname = "requirementsImportPost", notes = "Returns all requirements contained in the submitted reqIf file.", response = Requirement.class, responseContainer = "List", tags = {})
@ApiResponses(value = {
@ApiResponse(code = 200, message = "An array of requirements.", response = Requirement.class, responseContainer = "List") })
@CrossOrigin(origins = "*")
@RequestMapping(value = "/requirements/import", produces = { "application/json" }, consumes = {
"multipart/form-data" }, method = RequestMethod.POST)
ResponseEntity<List<Requirement>> requirementsImportPost(
@ApiParam(value = "file detail") @Valid @RequestPart("file") MultipartFile reqIfFile)
throws IOException, ContinuumException;
}
Код, который фактически выполняет считывание:
@javax.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2018-04-05T07:19:00.887Z")
@Controller
public class RequirementsApiController implements RequirementsApi {
@Override
public ResponseEntity<List<Requirement>> requirementsImportPost(
@ApiParam(value = "file detail") @Valid @RequestPart("file") final MultipartFile reqIfFile)
throws IOException, ContinuumException {
InputStream fileStream = new BufferedInputStream(reqIfFile.getInputStream());
List<Requirement> list = ReadReqIF.readReqIfFile(fileStream);
return new ResponseEntity<List<Requirement>>(list, HttpStatus.OK);
}
}
Может кто-нибудь сказать мне, где возможная ошибка?