#java #spring-boot #file #swagger-codegen-maven-plugin
#java #весенняя загрузка #файл #swagger-codegen-maven-plugin
Вопрос:
Мое приложение построено на SprinBoot, технологии Java, я хочу написать API для загрузки файла, и я использую swagger-codegen-maven-plugin, и в спецификации это указано ниже для загрузки файла
content:
application/octect-stream:
schema:
type: string
format: binary
Код, который автоматически генерируется с помощью swagger codegen, содержит возвращаемый тип как
ResponseEntity<String>
в приложении Java SpringBoot. Теперь у меня есть данные файла в byte [], как преобразовать их в строку и отправить как application / octect-stream ?.
Также дайте мне знать, находятся ли мои данные в файловом объекте вместо byte [], как их отправить?
Ответ №1:
Если предполагается, что ваш api возвращает файл, который должен быть загружен в качестве ответа на него, то ваш api должен возвращать responseResponseEntity. Ниже приведен снимок кода, который вы можете попробовать.
private ResponseEntity<ByteArrayResource> getRespEntity(Byte[] fileByte) {
ByteArrayResource resource = new ByteArrayResource(fileByte);
HttpHeaders headers = new HttpHeaders();
headers.add("Cache-Control", "no-cache, no-store, must-revalidate");
headers.add("Pragma", "no-cache");
headers.add("Expires", "0");
return ResponseEntity.ok().headers(headers).contentLength(resource.contentLength())
.contentType(MediaType.parseMediaType("application/octet-stream"))
.body(resource);
}