這實際上是一個設計問題。 我想知道是否Spring3.0 REST Web服務攜帶JSON有效載荷提供了類似於遵循合同優先設計的傳統Web服務的某種數據合同。 我知道JSON的架構類似於XSD,但它在春天適合哪裏? 背景: 我認爲使用json作爲客戶端服務器體系結構項目的有效負載,其中客戶端是基於.NET的應用程序,數據協定應該提供處理多個客戶端版本的方法。客戶端應該能夠將數據結構發佈到服務器。 或者,也許我應該採取一種無模式的方法,並使用類似於XmlAnyElement的「簡單數據綁定」?應該JSON RESTful Web服務使用數據合同
回答
具有「常規」網絡服務的「合同」在WSDL文件(包括XSD)中定義。使用RESTful服務時,這些文件被稱爲WADL。而spring-mvc不支持生成WADL。 (JAX-RS實現有)。
但即使如此,RESTful服務也被認爲更「動態」,並且不需要像那樣修復。例如,看看Facebook和Twitter的REST API。他們不提供WADL或JSON模式。他們提供一些自由形式的服務文件。這應該足夠了。
如果應該啓用客戶端模擬客戶端(實際上他們應該)的單元測試服務,服務應提供合同。自由格式文檔不是測試的可靠基礎,因爲它留下了誤解的空間,而合同卻沒有。
JSON Schema和Hyper-Schema是用於指定內容和內容協商的JSON Schema格式。
我一直致力於HATEOAS(超媒體作爲應用程序狀態的引擎)API,使用JSON超架構。 您可以轉到下面的URL,瀏覽,註冊,登錄並執行一些操作。
檢查出來,在這裏: http://direct.psprt.com:8081/
我也開源了我實際的API代碼迄今: http://bpanahij.github.io/passportedu_schema/
隨意看看,借用和評論。
此外,請查看JavaScript JSON-Hyper-Schema客戶端。它通過使用OPTIONS方法解析在給定資源端點提供的Schema來動態構建使用Angular的HTML客戶端應用程序。
https://github.com/bpanahij/passportedu_schema/tree/master/client
似乎很有趣,但鏈接已損壞 – eliocs 2017-04-18 12:54:29
- 1. RESTful Web服務
- 2. 如何使用RESTful Web服務按合同編碼
- 3. 用POST發送JSON到Restful web服務
- 4. RESTful Web服務的響應
- 5. 錯誤,同時部署AngularJS項目,該項目使用Spring的RESTful Web服務返回JSON數據通信
- 6. 使用jQuery調用Restful Web服務ajax
- 7. 的Grails:在不同格式的RESTful Web服務數據處理
- 8. 使用json數據的Web服務必然是REST Web服務?
- 9. Netbeans Restful Web服務
- 10. 認證使用RESTful Web服務
- 11. 使用jUnit測試Spring Restful web服務
- 12. 解決方案404錯誤使用RESTful Web服務使用JSON
- 13. Web服務應該返回JSON
- 14. 在restful json web服務c中發佈數據#
- 15. Web服務RESTFUL或JSP
- 16. Ajax調用Restful Web服務
- 17. 張貼JSON對象RESTful Web服務
- 18. Grails RESTful Web服務api
- 19. 如何使用jax-rs在Restful Web服務中讀取Json數據
- 20. 最佳實踐:使用Apache CXF進行RESTful Web服務數據交換的JSON
- 21. Web服務添加服務參考.NET複製數據合同
- 22. ASIHttpRequest調用Restful Web服務?
- 23. IOS如何使用RESTFUL API從Web服務檢索數據
- 24. 何時應該不使用Web服務?
- 25. 如何從使用Python的RESTful服務獲取JSON數據?
- 26. 使用C#Restful Web服務從Microsoft SQL Server數據庫中檢索數據
- 27. 使用Apache Shiro保護RESTful Web服務
- 28. 使用C#的restful Web服務
- 29. 如何使用RESTful Web服務?
- 30. JAVA :: RESTful Web服務使用XML文件
謝謝。情況確實如此。似乎任何使用REST的人都會跳過架構階段。我仍在尋找對這種新的無契約設計的深入解釋。 – ApriOri 2010-12-19 17:49:37
Bozho,你能否在這裏解釋一下你的意思是「動態」 - 「REST風格的服務被認爲更加'動態',並且不需要像那樣修復」。另外,爲什麼Facebook和Twitter不提供JSON模式/合同?如果他們對json響應進行重大更改,api用戶的代碼是不會中斷的? – testerjoe2 2017-02-11 02:28:46