99re热视频这里只精品,久久久天堂国产精品女人,国产av一区二区三区,久久久精品成人免费看片,99久久精品免费看国产一区二区三区

響應(yīng)

2018-02-24 16:23 更新

總是提供資源(UU)ID

為每個(gè)資源提供默認(rèn)的ID屬性。除非有特殊理由,總是使用UUID。不要用那些在服務(wù)的實(shí)例間或資源間不全局唯一的ID,特別是自增ID。

以8-4-4-4-12的格式小寫UUID:

"id": "01234567-89ab-cdef-0123-456789abcdef"

提供標(biāo)準(zhǔn)的時(shí)間戳

為資源提供默認(rèn)的 created_atupdated_at 時(shí)間戳:

{
  ...
  "created_at": "2012-01-01T12:00:00Z",
  "updated_at": "2012-01-01T13:00:00Z",
  ...
}

如果這些時(shí)間戳對(duì)某些資源真的沒有意義,那么你也可以去掉它。

使用ISO8601格式的UTC時(shí)間

只接受和返回UTC時(shí)間,以ISO8601格式顯示:

"finished_at": "2012-01-01T12:00:00Z"

嵌入外鍵數(shù)據(jù)

將外鍵引用通過序列化的嵌入對(duì)象顯示:

{
  "name": "service-production",
  "owner": {
    "id": "5d8201b0..."
  },
  ...
}

而不是這樣:

{
  "name": "service-production",
  "owner_id": "5d8201b0...",
  ...
}

這使得我們可以在inline使用相關(guān)的數(shù)據(jù),而不需要改變響應(yīng)的格式,或者引入更多高層的響應(yīng)字段:

{
  "name": "service-production",
  "owner": {
    "id": "5d8201b0...",
    "name": "Alice",
    "email": "alice@heroku.com"
  },
  ...
}

總是生成結(jié)構(gòu)化的錯(cuò)誤信息

為錯(cuò)誤生成一致的,結(jié)構(gòu)化的響應(yīng)Body。包含機(jī)器可讀的id,人類可讀的message,以及可選的url指向關(guān)于錯(cuò)誤的更多信息,還有如何解決它:

HTTP/1.1 429 Too Many Requests
{
  "id":      "rate_limit",
  "message": "Account reached its API rate limit.",
  "url":     "https://docs.service.com/rate-limits"
}

為客戶端常見的錯(cuò)誤的格式和id撰寫文檔。

顯示頻率限制的狀態(tài)

對(duì)客戶端的頻率限制可以保護(hù)服務(wù)的健康,并對(duì)其他的客戶端提供高質(zhì)量的服務(wù)。你可以使用token bucket 算法 來量化請(qǐng)求限制。

在每次請(qǐng)求的響應(yīng)頭中,通過RateLimit-Remaining 返回剩余的請(qǐng)求次數(shù)。

在所有的響應(yīng)中壓縮JSON數(shù)據(jù)

額外的空格增大了響應(yīng)的大小,而很多人性化的客戶端可以自動(dòng)美化JSON輸出。所以最好將JSON響應(yīng)進(jìn)行壓縮:

{"beta":false,"email":"alice@heroku.com","id":"01234567-89ab-cdef-0123-456789abcdef","last_login":"2012-01-01T12:00:00Z", "created_at":"2012-01-01T12:00:00Z","updated_at":"2012-01-01T12:00:00Z"}
不要這樣:

{
  "beta": false,
  "email": "alice@heroku.com",
  "id": "01234567-89ab-cdef-0123-456789abcdef",
  "last_login": "2012-01-01T12:00:00Z",
  "created_at": "2012-01-01T12:00:00Z",
  "updated_at": "2012-01-01T12:00:00Z"
}

你可以考慮提供一個(gè)可選的方式來為客戶端輸出更長(zhǎng)的響應(yīng),比如通過請(qǐng)求參數(shù)(如?pretty=true)或者通過 Accept頭(如Accept: application/vnd.heroku+json; version=3; indent=4;)。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)