全文網(wǎng)址https://www.kancloud.cn/kancloud/http-api-guide/56269
疑問點(diǎn):
1.身份驗(yàn)證中的“HTTP 基本認(rèn)證牵触,只有在部署了 SSL 證書的情況下才可以使用佛析,否則用戶密碼會(huì)有暴露的風(fēng)險(xiǎn)廓八,當(dāng)然苟蹈,最好不要使用”。
這里的SSL證書是啥東西租副?先mark郑藏,留著以后做網(wǎng)頁了解答。
2.CORS中呵晚,javascript,瀏覽器蜘腌,服務(wù)器三個(gè),第一個(gè)代表什么饵隙。
請(qǐng)求方法
rest:前端后端分離的一種方法撮珠。
可用于集合集合
GET http://localhost/hotels/(用于從服務(wù)器獲得某個(gè)資源的信息)
POST http://localhost/hotels/(用于創(chuàng)建新資源)
=================
可用于單個(gè)
GET http://localhost/hotels/656bcee2-28d2-404b-891b
PUT http://localhost/hotels/656bcee2-28d2-404b-891b(可用于整體的替換/創(chuàng)建)
PATCH http://localhost/hotels/656bcee2-28d2-404b-891b(局部更新,類似微信修改微信頭像)
DELETE http://localhost/hotels/656bcee2-28d2-404b-891b(刪除單個(gè))
HTTP協(xié)議
HTTP1.1
2016年IETF廢除RFC2616癞季,將1.1拆分成6個(gè)單獨(dú)協(xié)議:
信息語法和路由選擇:低級(jí)信息語法分析和連接管理
語意論和目錄:方法劫瞳,狀態(tài)代碼和標(biāo)題
條件請(qǐng)求:e.g., If-Modified-Since
范圍請(qǐng)求:獲得局部目錄
緩存:瀏覽器和中間緩存
鑒定:HTTP鑒定框架
HTTP2.0
2.0 版本的設(shè)計(jì)目標(biāo)是盡量在使用層面上保持與 1.1 版本的兼容倘潜,所以绷柒,雖然數(shù)據(jù)交換的格式發(fā)生了變化,但語義基本全部被保留下來了涮因。
URL
強(qiáng)烈建議 API 部署 SSL 證書废睦,這樣接口傳遞的數(shù)據(jù)的安全性才能都得一定的保障。
空字段
接口遵循“輸入寬容养泡,輸出嚴(yán)格”原則嗜湃,輸出的數(shù)據(jù)結(jié)構(gòu)中空字段的值一律為 null
國際化
- 語言標(biāo)簽
RFC規(guī)定的語言標(biāo)簽順序?yàn)椋?/p>
language(必填)-script-region-variant-extension-privateuse
疑問點(diǎn):這些script和region的簡稱都去哪里得到。
其中只有 language 部分是必須的澜掩,其他部分都是可選的购披;不過為了便于編寫程序,建議設(shè)計(jì)接口時(shí)約定語言標(biāo)簽的結(jié)構(gòu)肩榕,比如統(tǒng)一使用 language-script-region 的形式( zh-Hans-CN, zh-Hant-HK 等等)刚陡。
時(shí)區(qū)
貨幣名稱
貨幣名稱可以參考 ISO 4217 中的約定,標(biāo)準(zhǔn)為貨幣名稱規(guī)定了三個(gè)字母的貨幣代碼。
前兩位是ISO 3166-1Wikipedia 中定義雙字母國家代碼筐乳,第三個(gè)字母通常是貨幣的首字母
狀態(tài)碼
請(qǐng)求成功
重定向
條件請(qǐng)求
客戶端錯(cuò)誤
服務(wù)端錯(cuò)誤
錯(cuò)誤處理
身份驗(yàn)證
歌殃?
超文本驅(qū)動(dòng)和資源發(fā)現(xiàn)
分頁
請(qǐng)求某個(gè)資源集合時(shí),可以通過指定 count 參數(shù)來指定每頁的資源數(shù)量蝙云,通過 page 參數(shù)指定頁碼氓皱,或根據(jù) last_cursor 參數(shù)指定上一頁最后一個(gè)資源的標(biāo)識(shí)符。
如果沒有傳遞 count 參數(shù)或者 count 參數(shù)的值為空勃刨,則使用默認(rèn)值 20 波材, count 參數(shù)的最大上限為 100 。
如何同時(shí)傳遞了 last_cursor 和 page 參數(shù)朵你,則使用 page 各聘。
分頁的相關(guān)信息會(huì)包含在 Link Header 和 X-Total-Count 中。
HTTP/1.1 200 OK
X-Total-Count: 542
Link: <http://api.example.com/#{RESOURCE_URI}?last_cursor=&count=100>; rel="first",
<http://api.example.com/#{RESOURCE_URI}?last_cursor=200&count=100>; rel="last"
<http://api.example.com/#{RESOURCE_URI}?last_cursor=90&count=100>; rel="previous",
<http://api.example.com/#{RESOURCE_URI}?last_cursor=120&count=100>; rel="next",
[
...
]
數(shù)據(jù)緩存
大部分接口應(yīng)該在響應(yīng)頭中攜帶 Last-Modified, ETag, Vary, Date 信息抡医,客戶端可以在隨后請(qǐng)求這些資源的時(shí)候躲因,在請(qǐng)求頭中使用 If-Modified-Since, If-None-Match 等請(qǐng)求頭來確認(rèn)資源是否經(jīng)過修改。
如果資源沒有進(jìn)行過修改忌傻,那么就可以響應(yīng) 304 Not Modified 并且不在響應(yīng)實(shí)體中返回任何內(nèi)容大脉。