我們正在設計一個相當複雜的REST API,其中大部分I/O都是具有特定結構的JSON編碼對象。我們發現的一個挑戰是以這種方式記錄API,使客戶更容易發佈正確的輸入和處理輸出。由於輸入和輸出的數據都需要相當複雜的JSON對象,客戶端開發人員通常會引入與I/O對象結構相關的錯誤。用於JSON REST/RPC接口的IDL
與所有的JSON網絡API的是,這些天,我會希望有一個通用的解決方案,但我有一個很難找到一個。我研究了json-schema這是一個json驗證模式,但IETF草案和實現似乎都相當不成熟(儘管它們已經存在了一段時間,這不是一個好兆頭)。
Protocol Buffers和Apache Avro提供了一個稍微不同的方法,其中架構不用於驗證,但實際上需要消息的編碼/解碼。在這兩個中,Avro似乎具有相當有限的文檔和實現。 ProtoBuf似乎更好,但我不確定這是否真的適合用在瀏覽器中調用JSON API?
現在我開始懷疑,如果我從合適的角度看這個。是否有其他方法可以使我的API更強大一些?或者是對JSON REST/RPC API的正式描述,這會破壞使用JSON的目的?
編輯:這個話題6個月後,我們發現mongoose,這是非常接近我們了找誰。
如果你真的需要使用現有的解決方案,我只需要使用json-schema,這似乎很容易使用。否則,我認爲自己檢查JSON結構並不難 - 檢查每個對象是否具有您需要的屬性,並且如果您也有這樣的屬性,請遞歸執行。與XML不同,JSON的驗證非常簡單,這可能是爲什麼沒有適當的模式驗證解決方案存在。 –