Скрыть некоторые API в пользовательском интерфейсе Swgger
Возможно ли в hapi-swagger скрыть некоторые API-интерфейсы от документации (swagger ui) в зависимости от роли пользователя. Я имею в виду, предположим, у меня есть /employee
а также /admin
два API, поэтому всякий раз, когда администратор входит в Swagger UI или Swagger документации, так что оба /employee
а также /admin
API должен отображаться на странице, и если сотрудник входит в пользовательский интерфейс, то он должен отображать только /employee
API.
1 ответ
Вы можете скрыть маршруты, пропустив значение ['tag'] в конфигурации, но вы не можете использовать это для роли пользователя без значительных переделок. Документация генерируется при запуске сервера не на лету, поэтому вам необходимо перезагрузить сервер, чтобы отразить изменения.
У меня был похожий вариант использования, и в конце концов я решил, что более разумно иметь разные конечные точки для двух разных служб (в вашем случае сотрудник и администратор). Так что, возможно, что-то вроде api.domain.com/internal и api.domain.com/external и, если нужно, легко обернуть аутентификацию вокруг любого из них. Это также приводит к преимуществам, если вы когда-нибудь захотите предоставить разработчикам доступ к работе над одной группой API, а не открывать доступ к обеим.