Как создать методы HTTP GET и POST в kdb - PullRequest
3 голосов
/ 26 июня 2019

Каков наилучший способ настройки методов HTTP GET и POST с базой данных kdb?

Я хотел бы иметь возможность извлекать имена столбцов из таблицы kdb для создания простой формы с возможностью заполненияполя в браузере, позволяют пользователям вводить текст в поля, а затем вставлять и сохранять этот текст в моей таблице.

Например, если у меня была следующая таблица ...

t:([employeeID:`$()]fName:`$(); mName:`$(); lName:`$())

Пока я знаю, как открыть порт \p 9999, а затем просмотреть эту таблицу в браузере, подключившись к локальному хосту http://localhost:9999, и я знаю, как получить только имена столбцов: cols t.

Хотя я не уверен, как создать полезный REST API из этой таблицы, которая достигает вышеуказанной цели, главным образом обновляя таблицу введенными данными.Мне известно о .Q.hg и .Q.hp из этого сообщения в блоге и справки Kx .Но информации мало, и я все еще не уверен, как заставить ее работать для моей конкретной цели.

1 Ответ

2 голосов
/ 27 июня 2019

В зависимости от вашей внешней (клиентской) технологии вы можете использовать HTTP-запрос или WebSockets.Использование HTTP-запроса потребует дополнительной работы для настройки вывода запроса, так как по умолчанию он возвращает данные HTML.

Если ваш клиент поддерживает такие веб-сокеты, как Javascript, его будет легко использовать.

Обычно для настройки WebSockets необходимо сделать 2 вещи:

1) Запустить сервер KDB и настроить функцию-обработчик для запроса WebSocket.Функция для этого .z.ws.Для примера простая функция будет выглядеть примерно так:

  q) .z.ws:{neg[.z.w].Q.s @[value;x;{`$ "'",x}]}

2) Настройте функцию обработчика сообщений на стороне клиента, откройте соединение websocket с клиентом и отправьте запрос на сервер KDB.

Подробности: https://code.kx.com/v2/wp/websockets/

Пример: https://code.kx.com/v2/wp/websockets/#a-simpledemohtml

...