Springfox 复制控制器

Springfox duplicating controllers

我正尝试与 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)。所以我想尽可能保持简单。

我决定进一步推动我的解决方法并找到了这个解决方案:

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

这可能不是最好的解决方案,所以如果您有更好的方案,请随时发表评论。