Я разрабатываю демо-версию REST Demo с использованием Grails 3 с сервисом Spring Security REST и Swagger Documentation. Ниже приведены зависимости для Spring Security Rest.
org.grails.plugins:весна-безопасность-остальное:2.0.0.M2
org.grails.plugins:весна-безопасность-остальное-горм:2.0.0.M2
где пользователь должен войти в систему, чтобы выполнить определенное подмножество операций. После добавления Swagger Doc с использованием следующего плагина и настройки доступа ко всем открытым API-интерфейсам я могу получить доступ ко всем документам Swagger API с помощью «localhost://applicationPath/api»
org.grails.plugins:swaggydoc-grails3:0.28.0
К сожалению, среди них нет конечных точек входа. Если я добавлю свой LoginController вместе с контроллером конечных точек API, тогда он перечислит все API входа, но URL-адрес доступа станет
APPLICATIONURL/api/v1/api/логин
Что плохо работает.
Проблема в том, что часть этих операций не может быть выполнена через встроенную форму пользовательского интерфейса Swagger (я нахожу это действительно хорошей функцией и хотел бы, чтобы она работала), потому что пользователь не вошел в систему. Есть ли решение этой проблемы? Могу ли я вручную определить некоторые конечные точки в Swagger?
Это мой пример кода для регистрации любого API с помощью Swagger.
@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() {
}
}
Если кто-нибудь может помочь в этом, это будет большая помощь.