Latency 延遲
執行一個操作要花費的「時間長度」。
網路位址轉譯(Network Address Translation, NAT)可以改變封包的傳送端 IP 位址與接收端 IP 位址,減少真實 IP 的使用量,也可以將私有 IP(內部 IP)改變成真實 IP(外部 IP)再傳送到網際網路,只需要向網際網路服務供應商,例如:中華電信(2412-TW)申請一個真實 IP,就可以將公司內部所有的電腦連接到網際網路了,因此 NAT 伺服器是最重要的防火牆成員,也是一種「封包過濾器(Packet filter)」。
Imperva 透過動態學習網頁Web服務的行為來保護這些應用,包括 XML檔、元件、屬性、架構、變數和簡單物件連結協定(SOAP)。Imperva將識別並阻止任何嘗試竄改正常Web服務的行為,還會抵禦應用程式中常見的威脅,如SQL注入、XSS、CSRF等。
這項技術是由originally drafted by Yehuda Katz in May of 2013 提出的。一個概念或技術的出現往往都有它的目的與精神,整理如下
Its original goal was to create a communication model based around defined interactions,rather than leaning on per-application “ad-hoc” code
ad-hoc
:「特設的、特定目的的、即席的、臨時的、將就的、專案的」
JSON:API is a specification for how a client should request that resources be fetched or modified, and how a server should respond to those requests.
JSON:API is designed to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability.
JSON 幾乎成為 Web 業界的標準傳輸格式,不過由於 JSON 的格式非常彈性,不少人光是為了爭辯 JSON 到底該長得怎樣而吵半天,我也好幾次被客戶「自訂」的 JSON 格式打敗,不但缺發一致性,更有前後版本相容性的問題,身為前端攻城獅的你能不在乎嗎?!
現在有了 JSON API 這份標準規格,可以幫助你**增加效率 (減少溝通)**、套用工具支援 (或現有函式庫)、並且讓你專注在你的應用程式開發上,不再為了 JSON 的長相而煩惱!
目前實作 JSON API 的函式庫很多了,有支援 ASP.NET WebAPI, Json.NET, 與 Entity Framework 的 JSONAPI . NET,其他還有 PHP, node.js, Ruby, Python, Go 都有相對應的 Server/Client 實作出現,使用上非常方便!
自己的結語
JSON APIs 的資料結構 很像是RMDBS 與SQL 的另一種形式呈現。
在client 跟server 都有一些職責在,大家都必須在 header 中聲明application/vnd.api+json
而JSON API 已經在IANA
機構完成註冊囉,它的MIME 類型就是application/vnd.api+json
MUST
MAY
Primary data MUST be either:
Primary data MUST have type and id
可以想像成是資料表與資料的ID
每一個RO(Resource Objects) 都必須要有id,type,且必須是字串
attributes ,relationships 在這邊統稱fields
表達資料的資訊,可以想像是我們在資料表欄位
MUST contain at least one
links
self
1 | "relationships": { |
relationships 下的 links->self 可以想像是依據文章編號1的作者,再反推找到所有文章?
related
1 | "relationships": { |
取得文章編號1的作者資訊?
data
此關聯資源的資料,一樣必須包含type,id
meta
1 | { |
To reduce the number of HTTP requests, servers MAY allow responses that include related resources along with the requested primary resources. Such responses are called “compound documents.
試著解釋以下文檔
1 | { |