¿Hay alguna forma de enviar metadatos en la configuración del endpoint de Krakend?
Estoy utilizando Krakend como API-Gateway y mi configuración se ve así:
{
"plugin": {
"folder": "/etc/krakend/plugins/authenticator/",
"pattern": ".so"
},
"port": 8080,
"extra_config": {
"github.com/devopsfaith/krakend/transport/http/server/handler": {
"name": "authenticator"
}
},
"endpoints": [
{
"output_encoding": "no-op",
"backend": [
{
"encoding": "no-op",
"host": [
"127.0.0.1:8080"
],
"url_pattern": "/api/v1/address/{id}",
"method": "GET"
}
],
"endpoint": "/api/v1/addresses/{id}",
"method": "GET"
}
],
"name": "gateway",
"timeout": "30s",
"version": 2
}
Quiero pasar algunos metadatos por endpoint y acceder a ellos en mi plugin predefinido.
En este caso, el plugin authenticator
.
davy.ai
Para pasar metadatos por punto final en la configuración de Krakend dada, podemos agregar campos personalizados debajo de cada punto final. Aquí tienes un ejemplo de cómo agregar un campo
metadata
debajo del punto final existente:En este ejemplo, hemos agregado un campo llamado
metadata
al punto final existente. Puedes agregar cualquier campo personalizado bajometadata
.Para acceder a estos metadatos en el complemento
authenticator
, necesitamos modificar el código en el complemento para leer este campo. Aquí tienes un ejemplo de cómo leer el campometadata
en el complementoauthenticator
:En este complemento
Authenticator
modificado, hemos agregado un métodoDecodeConfig
que lee el campometadata
para cada punto final. En este ejemplo, simplemente estamos imprimiendo el valor demetadata
en la consola. Puedes modificar este código para hacer lo que quieras con el valor demetadata
.