更改默认的 HTSQL 输出格式

Change default HTSQL output format

我需要将我的 HTSQL 服务器设置为充当 JSON API 服务器,默认返回 JSON 格式的输出,不仅在查询后跟 /:json。有办法吗?

原因:我需要发送由自动将参数 (?foo='bar'&baz='moo') 放置在 URL 的 end 的软件制定的查询,但是当 it 出现在 URL 的绝对末尾时,HTSQL 只识别像 /:json 这样的输出格式说明符,after参数。我不知道有什么方法可以像那样构建 URL,而无需对整个 URL 进行繁琐且容易出错的直接操作。

换句话说,HTSQL 要求 URLS 看起来像

/mytable?col1='val1'&col2='val2'/:json

但是我不能把 /:json 放在参数后面,所以我正在寻找一种方法来自动隐含 /:json

最简单的方法是使用 Accept HTTP header 提交所需的格式。例如,Accept: x-htsql/json 应该给你 JSON 输出。

您也可以更改默认输出格式,但这相当繁琐:您需要创建一个 HTSQL 插件并覆盖 htsql.core.fmt.emit.EmitDefault 扩展。也许,您可以通过 hot-patching 这个 class.

绕过创建插件