Cómo agregar OpenApi/Swagger securitySchemes en RouteBuilder.restConfiguration() de Apache Camel?
Intento agregar springdoc-openapi-ui
y camel-springdoc-starter
. No funciona tan mal.
Por ahora tengo problemas con la ruta del contexto, /camel
, y con la falta de securitySchemes
.
¿Alguien tiene alguna idea de cómo hacer esto?
¿Cómo puedo obtener una configuración como esta?
{
“openapi”: “3.0.1”,
“info”: {
“title”: “some title”,
“version”: “0.8.15-SNAPSHOT”
},
“servers”: [
{
“url”: “http://localhost”
}
],
“security”: [
{
“Keycloak”: []
}
],
“components”: {
“schemas”: {
…
},
“securitySchemes”: {
“Keycloak”: {
“type”: “oauth2”,
“name”: “Keycloak”,
“flows”: {
“password”: {
“tokenUrl”: “http://localhost:8080/auth/realms/sample-app/protocol/openid-connect/token”,
“scopes”: {
“email”: “”,
“profile”: “”
}
}
}
}
}
}
}
Usando algo como esto:
@Override
public void configure() {
restConfiguration()
.component(“servlet”)
.apiProperty(“api.title”, “RDF-Pub Server”)
.apiProperty(“api.version”, appVersion)
.apiProperty(“api.components.securitySchemes.Keycloak.type”, “oauth2”)
.apiProperty(“api.components.securitySchemes.Keycloak.name”, “Keycloak”)
.apiProperty(“api.components.securitySchemes.Keycloak.flows.password.tokenUrl”, “http://localhost:8080/auth/realms/example-app/protocol/openid-connect/token”)
.apiProperty(“api.components.securitySchemes.Keycloak.flows.password.scopes.email”, “”)
.apiProperty(“api.components.securitySchemes.Keycloak.flows.password.scopes.profile”, “”);
}
davy.ai
Para configurar los
securitySchemes
y elcontext path
paraspringdoc-openapi-ui
ycamel-springdoc-starter
, puedes utilizar el siguiente código:Esta configuración establece el
contextPath
como/
y agrega unSecurityScheme
paraKeycloak
con tipooauth2
, que es utilizado porspringdoc-openapi-ui
ycamel-springdoc-starter
. También se configuran eltokenUrl
y los ámbitosemail
yprofile
. Finalmente, se establece la versión deopenApi
y la URL deservers
.Luego, puedes utilizar esta configuración en tu aplicación Camel de la siguiente manera:
Aquí, definimos el
apiContextPath
como/api
y especificamos elopenApiCustomiser
para utilizar la configuración que definimos anteriormente. Puedes ajustar estos valores según tus necesidades específicas.