Я только начинаю с чванства, чтобы создать Java Spring API. Само поколение проблем не представляет. Я использовал yaml PetStore, чтобы без проблем сгенерировать серверный код SpringBoot.
Однако после того, как я сгенерировал код, я не могу найти хороший учебник / способ, объясняющий мне, где лучше всего разместить собственный код, который я хочу написать. Запись его непосредственно в сгенерированный код не кажется хорошей идеей, поскольку, если я когда-либо регенерирую из-за изменений в определениях, вы не захотите переопределять используемый код.
Вы получаете такие заглушки:
@Controller
public class PetApiController implements PetApi {
...
public ResponseEntity<ModelApiResponse> uploadFile(@ApiParam(value = "ID of pet to update",required=true ) @PathVariable("petId") Long petId,
@ApiParam(value = "Additional data to pass to server") @RequestPart(value="additionalMetadata", required=false) String additionalMetadata,
@ApiParam(value = "file detail") @RequestPart("file") MultipartFile file) {
// do some magic!
return new ResponseEntity<ModelApiResponse>(HttpStatus.OK);
}
...
}
Теперь есть способ заполнить "сотворите волшебство!" часть во время / после генерации, то есть с вызовом службы, так что я могу использовать это как своего рода точку входа. например автоматическое подключение службы, которая имеет те же методы, но может быть предоставлена мной, так что я могу хранить свои реализации отдельно от сгенерированного кода.
@Controller
public class PetApiController implements PetApi {
...
@Autowired
PetApiService petApiService;
...
public ResponseEntity<ModelApiResponse> uploadFile(@ApiParam(value = "ID of pet to update",required=true ) @PathVariable("petId") Long petId,
@ApiParam(value = "Additional data to pass to server") @RequestPart(value="additionalMetadata", required=false) String additionalMetadata,
@ApiParam(value = "file detail") @RequestPart("file") MultipartFile file) {
return petApiService.uploadFile(file);
}
...
}
Спасибо