Kibana v6.2.4
В режиме разработки URL Kibana содержит случайное слово, которое изменяется после перезапуска, например, poj
слово здесь
http://localhost:5601/poj/app/myplugin#/?_g=()
Как получить слово в пользовательском плагине кода на стороне сервера?
В моем плагине Kibana я использую server.inject()
async function logData(attributes) {
const resp = await server.inject({
method: 'PUT',
url: '/api/myplugin/alarm',
headers: {
'kbn-xsrf': 'reporting',
},
payload: {
attributes,
},
});
... do stuff
}
для запроса маршрута API плагина из кода сервера
server.route({
method: ['PUT'],
path: '/api/myplugin/alarm/{id?}',
config: {
validate: {
params: {
id: Joi.string(),
},
payload: {
attributes: Joi.object().required(),
},
},
},
handler: async function (req, reply) {
... do stuff
И это работает, когда я запускаю Kibana в обычном режиме. Но когда я запускаю его в режиме разработки cd kibana && npm start
, я получаю необработанный ответ с 404 Not Found
в заголовке:
{ raw:
{ res:
Response {
domain: [Object],
...
socket: [Object],
connection: [Object],
_header: 'HTTP/1.1 404 Not Found\r\nkbn-name: kibana\r\nkbn-version: 6.2.4\r\ncontent-type: application/json; charset=utf-8\r\ncache-control: no-cache\r\ncontent-length: 38\r\nDate: Mon, 17 Sep 2018 16:32:02 GMT\r\nConnection: keep-alive\r\n\r\n',
Я понимаю, это потому, что у меня нет случайного слова в server.inject()
URL.
Важное обновление
Пример в вопросе работает! Проблема заключалась в том, что в моем реальном коде я использовал неверный путь в маршруте.