Springfox复制控制器

时间:2019-12-27 13:25:21

标签: java spring swagger-ui swagger-codegen

我正在尝试与swagger-codegenspringfox一起工作,以在Web服务开发过程中节省时间。

我正面临着为注释的接口类以及控制器实现创建终结点的问题,如下所示:

我发现了一种解决方法,方法是在控制器中的控制器应添加标签的位置(例如:@Api(tags={ "Player" })),但我正在寻找一种更好的方法来防止这种情况,因为如果我使用代码生成来避免这种情况您必须在代码中添加内容的情况。

使用swagger-codegen,我只需要这样写一个RestController(PlayerApiImpl):

@RestController
public class PlayerApiImpl implements PlayerApi {

    @Override
    public ResponseEntity<Player> playerIdGet(String id) {
        PlayerDTO ret = service.getOne(Long.parseLong(id));
        if (ret == null) {
            throw  new PlayerNotFoundException();
        }
        return ResponseEntity.ok(mapper.toModel(ret));
    }
}

所有内容都生成到接口(此处为PlayerApi)中。所以我想尽可能地保持简单。

1 个答案:

答案 0 :(得分:0)

我决定再加一些解决方法,并找到以下解决方案:

实际上有可能直接在生成的界面中添加@Api注释,以防止您在实现中添加它。为此,您需要使用胡须模板文件,这些文件可以在您的swagger文件所在的目录中创建。

这可能不是最佳解决方案,因此,如果您有更好的建议,请随时发表评论。