我正在使用带有服务 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() {
}
}
如果有人可以提供帮助,那将是很大的帮助。