1

我正在使用带有服务 Spring Security REST 和 Swagger 文档的 Grails 3 开发演示 REST Demo。以下是 spring security rest 的依赖项

org.grails.plugins:spring-security-rest:2.0.0.M2

org.grails.plugins:spring-security-rest-gorm:2.0.0.M2

用户必须登录才能执行某些操作子集。在使用以下插件添加 Swagger Doc 并配置以访问所有公开的 API 后,我可以使用“localhost://applicationPath/api”访问所有 API 的 swagger doc

org.grails.plugins:swaggydoc-grails3:0.28.0

不幸的是,我没有在其中列出登录端点。如果我将我的 LoginController 与 apis 端点控制器一起添加,则它会列出所有登录 api,但访问 url 变为

APPLICATIONURL/api/v1/api/login

哪个效果不好。

问题是部分操作无法通过 Swagger UI 内置表单执行(我觉得它非常好,希望让它工作),因为用户没有登录。这个问题有什么解决方案吗?我可以在 Swagger 中手动定义一些端点吗?

这是我使用 Swagger 注册任何 API 的示例代码

@Api(
        value = 'Sample',
        description = 'Sample APIs.',
        position = 0,
        produces = 'application/json',
        consumes = 'application/json',
        basePath = 'v1',
        protocols = 'http, https',
        hidden = false
)
@Controller()
class SampleController {
@ApiOperation(
            value = 'Sample API',
            notes = '',
            response = Sample,
            responseContainer = 'Array',
            position = 0,
            httpMethod = 'GET',
            produces = 'application/json',
            consumes = 'application/json',
            protocols = 'http, https',
            hidden = false
    )
    @ApiImplicitParams([
            @ApiImplicitParam(name = 'max', value = 'Max records to return', defaultValue = '10', paramType = 'query', dataType = 'int', required = false, allowMultiple = false)
    ])
    @ApiResponses([
            @ApiResponse(code = 200, message = "", response = Sample),
    ])
    def sampleAPI() {
    }
}

如果有人可以提供帮助,那将是很大的帮助。

4

1 回答 1

0

我创建了一个 API,它调用“api/login”来进行身份验证

于 2017-11-16T07:08:28.020 回答