簡體   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