繁体   English   中英

这是正确的api响应吗?

[英]Is this a correct api response?

我正在尝试了解 API 并在用户点击我的基本 Express 应用程序上的端点时创建一个简单的响应。

我不确定什么构成了正确的 API 响应,它是否需要是一个对象?

我得到的数据是一个数组数组,我从文件中导出它,并使用 response.json() 在 express 应用程序中将其作为对象返回,它显示正常,但我不确定我是否遵循正确的我如何处理和显示它的方法。

我想了解应该如何返回 API 数据,我觉得它应该始终是一个对象,但我在这里返回的是一个数组数组,请提供一些更好地理解这一点的解释会有所帮助。

这是我的数据文件:

    export const data = [
  [
    'a9e9c933-eda2-4f45-92c0-33d6c1b495d8',
    {
      title: 'The Testaments',
      price: { currencyCode: 'GBP', amount: '10.00' },
    },
  ],
  [
    'c1e435ad-f32b-4b6d-a3d4-bb6897eaa9ce',
    {
      title: 'Half a World Away',
      price: { currencyCode: 'GBP', amount: '9.35' },
    },
  ],
  [
    '48d17256-b109-4129-9274-0bff8b2db2d2',
    { title: 'Echo Burning', price: { currencyCode: 'GBP', amount: '29.84' } },
  ],
  [
    'df2555ad-7dc2-4b1f-b422-766184b5c925',
    {
      title: ' The Institute',
      price: { currencyCode: 'GBP', amount: '10.99' },
    },
  ],
];

这是我的 express 应用程序文件中的一个片段,它为这个端点导入数据对象:

app.get('/books', (request, response) => {
  response.json({ books: data });
});

看起来不错,我要做的一件事是确保您返回的对象的根在 api 调用之间始终具有相同的名称,因此这里您的根对象名称是“books”:

app.get('/books', (request, response) => {
  response.json({ books: data });
});

我个人会将其更改为:

app.get('/books', (request, response) => {
  response.json({ data: data });
});

现在这似乎令人困惑,但这意味着当您的 api 被查询时,api 返回的实际资源总是在一个名为data的对象中,它只是为人们应该期望看到的 api 响应资源构建了一个通用模式在您的 JSON 响应中。

因此,例如,如果您有另一个作者端点,人们就会知道作者的响应将在名为 data 的对象下:

app.get('/authors', (request, response) => {
  response.json({ data: authors });
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM