SlashDB:是否有可能从 SQL 传递到 return HTTP 错误代码?

SlashDB: Is it possible to to return HTTP error code from SQL Pass-thru?

在 SlashDB 中,每当可以执行传递查询时,HTTP 代码 returned 总是在 200-class(OK、Created 等)中。不幸的是,这没有考虑应该 returned 错误的情况,例如:table 中不存在项目等

是否可以强制从传递查询中获取错误代码?

更新: 我知道这是一个没完没了的争论,如果一个有效的查询 return 是一个空集,它是否应该 return 一个错误代码。双方都有有效的论点。我碰巧认为,如果我们认为,比如说,序列号是一种资源,但它不存在,那么调用应该 return 出错。然后可以将有关如何进一步处理问题的一些详细信息放在响应正文中。

这个问题并不是试图寻找上述争论的答案,而只是试图发现在使用 SQL 传递功能时,SlashDB 中是否有一种方法可以影响 HTTP 错误代码。

如果一个查询没有返回任何行是一个错误条件,可以保证 404 Not Found,这是值得商榷的。 SlashDB 在早期版本中就是这样,但许多开发人员抱怨。

现在,只要查询有效且执行无问题,您就会得到结果和 200 OK。它可以是一个空列表,即 [],如果没有符合您的查询条件的行。

也可以返回其他错误代码。例如,如果您没有权限,您将收到 403。

通常 4xx 系列中的 HTTP 代码表示客户端请求有问题。 5xx 系列中的代码表示服务器出现某些意外情况,即数据库已关闭或因流量过大而超时。

如果此解释未解决您的特定查询,请使用查询示例和有关您的数据库架构的相关信息更新您的问题。

在 SlashDB 中似乎没有办法处理这个问题。我对此的解决方案是在 MySQL 端声明一个错误,并在 message_text 上声明一个错误来描述问题。由于这个错误,SlashDB returns 一个不明确的 500 代码。

这是一个蛮力解决方案,但它暂时消除了歧义。