0

我有一个 HTTP JSON API,它在一个小框架上运行在 php 上。此 API 是数据库 pgsql 函数的包装器。PHP 框架以这种方式返回响应:

{
  code: 200,
  data: []
} 

代码是 HTTP 代码响应(例如 200、301、302 等)。pgsql 函数返回它们自己的代码(负值表示错误,正值表示成功结果)、消息(代码的含义)和结果数据:

{
  code: -1,
  message: 'Wrong data',
  data: []
}

所以,我的 API 包是:

{
  code: 200,
  data: {
    code: 1
    message: 'Succeed'
    data: []
  }
}

不是很乱吗?在编写请求此 API 的客户端代码时出现一些混淆。也许有一些标准模式可以制作某种 API 包。

4

2 回答 2

1

看到你必须以迭代的方式阅读回复。您可以读取 JSON 响应,然后检查数据字段是否有另一个对象/数组。

您必须评估代码并在除 200 之外的所有代码上显示错误消息。

于 2012-11-18T13:49:52.180 回答
1

您的 API 布局并不混乱。正如 Botond 所建议的,这实际上是非常合乎逻辑的。我要对其进行的唯一更改是将您的状态代码移动到 HTTP 标头而不是 JSON 数据中,以稍微减少格式。这也将允许您轻松区分成功的调用和错误。

假设你的 API 可以回答 4 个不同的代码:200、201、403、404。分别是:完成、未更改、禁止、未找到。您可以轻松地将其绑定到 HTTP 响应标头中,而不是将其作为 JSON 变量传递,因为这些值已经存在并且很好理解。就像在这个问题中一样,这是一种非常受欢迎的提供状态代码的方法,前提是您没有将此特定标头用于其他任何事情。

于 2012-11-18T13:50:20.830 回答