首页 > 解决方案 > 如何在 kdb 中创建 HTTP GET 和 POST 方法

问题描述

使用 kdb 数据库设置 HTTP GET 和 POST 方法的最佳方法是什么?

我希望能够从 kdb 表中提取列名,以在浏览器中创建一个带有可填写字段的简单表单,允许用户在字段中输入文本,然后将该文本插入并保存到我的表中。

例如,如果我有下表...

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

到目前为止,我知道如何打开一个端口\p 9999,然后通过连接到本地主机在浏览器中查看该表,http://localhost:9999并且我知道如何只获取列名:cols t.

虽然我不确定如何从这个表构建一个有用的 REST API 来实现上述目标,主要是用输入的数据更新表。我知道.Q.hg.Q.hp从这篇博客文章Kx 参考。但是信息很少,我仍然不确定如何让它为我的特定目的工作。

标签: kdb

解决方案


根据您的前端(客户端)技术,您可以使用 HTTP 请求或WebSockets. 使用 HTTP 请求将需要额外的工作来自定义请求的输出,因为默认情况下它返回 HTML 数据。

如果您的客户端支持像 Javascript 这样的 Websockets,那么使用它会很容易。

基本上,您需要做两件事来设置 WebSocket:

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


推荐阅读