2015-01-20 8 views

回答

51

媒體類型application/vnd.api+json引用JSON API。你可以閱讀關於它in great detail here

總之,JSON API是一個剛愎自用,充分的論證:

...爲客戶如何請求資源是 獲取或修改,以及如何服務器應該對那些 請求做出響應的規範。

+9

這將是巨大的,如果一個有關供應商前綴句子(VND'')被包括在從@rmhartog的回答這個答案。 – Vasif 2016-06-06 21:12:22

29

首先是一個API特定的媒體類型。供應商前綴(vnd.)表示該供應商是自定義的。 +json表示它可以被解析爲JSON,但媒體類型應該在JSON之上定義了進一步的語義。

第二隻意味着內容是JSON。但這通常不是非常有用,因爲它沒有定義JSON值的含義。

關於此問題的一個好的起點將在Wikipedia上,但對於更多細節,您可以隨時鏈接到該頁面上相應的RFC。

10

如果你不知道,使用application/json - 這是通用的MIME類型,只需要你返回是一個well-formed JSON數據。


application/vnd.api+json MIME類型是使用(容易混淆的命名)"JSON API"協議保留用於通信。

「JSON API」 在這方面確實意味着基於HTTP和JSON 任何 API。這是一個框架用於構建允許客戶端獲取和修改相關實體的API。例如,博客應用程序可以實現符合「JSON API」規範的API,該規範允許在給定作者的最後10篇文章中,在單個HTTP請求中爲每篇文章提供元數據和評論。

該規範定義,尤其是:

  • 的具體方式的請求應該形成(即什麼URL參數控制排序和分頁以及輸出中包含的數據);
  • 在響應中的JSON文檔的具體結構,例如:

    甲文檔必須包含以下的頂層構件中的至少一個:

    • data:該文檔的「主數據「
    • errors:錯誤對象數組
    • meta:包含非標準元信息的元對象。

    會員dataerrors不能共存於同一文件中。