【发布时间】:2018-06-19 21:06:49
【问题描述】:
我刚开始用 swagger 生成 java Spring API。 一代本身没有问题。我使用 PetStore yaml 生成 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);
}
...
}
谢谢
【问题讨论】:
标签: java swagger code-generation swagger-codegen