我使用ASP.NET WebAPI構建RESTful API,我需要支持不同的API版本。 我知道基於URL(api/v1/style)或基於自定義HTTP頭實現控制器選擇的方法。通過這種方式,我將在不同的API版本的不同名稱空間中使用不同的控制器。不過,我還有另一個問題需要考慮。如果我的模型在v1和v2之間變化會怎樣?我如何讓我的v1 API改變它的序列化輸出?我使用的是實體框架代碼優先的方法,所以模型更改很容易實現,但這可能會破壞我的v1 API。確保每個API版本保持一致的最佳方法是什麼?版本控制WebAPI - 模型更改
0
A
回答
2
我不明白實體框架與它有什麼關係。我希望你不是直接序列化你的EF模型,是嗎?如果你這樣做,那麼你確實有問題。
您應該改用視圖模型。這些視圖模型隨後可以與您對控制器進行版本控制相同的方式進行版本控制。對於不同版本的控制器,您將擁有不同的視圖模型。
通過這種方式,您可以完全控制通過電線進行序列化的內容。現在,您可以儘可能多地在內部更改EF模型。有一天,你甚至可能會決定放棄EF(因爲它可能會吸引人,並且可能會有一個新的孩子),並將其替換爲完全不同的東西,這種改變將不會反映在你的Web API上,以及暴露給外面只是因爲你正在曝光視圖模型。
相關問題
- 1. SVN:更改版本控制模型
- 2. 更改emacs版本控制模式
- 3. WebApi版本化單個控制器
- 4. Simulink庫中的版本控制模型
- 5. Rails中的模型版本控制
- 6. 域模型的版本控制
- 7. Maven模型<modelVersion>版本控制?
- 8. 自動更改管理/版本控制
- 9. 控制DDL更改的版本
- 10. 版本控制
- 11. 更改屬性數據類型 - CoreData版本控制
- 12. Rails模型版本控制 - 一個模型與獨立版本的列
- 13. 數據庫版本/數據更改控制不是模式?
- 14. 在運行時版本控制中更改佈局(模板)
- 15. Hibernate/JPA版本併發控制和DTO /更改命令模式
- 16. db版本的版本控制/日誌記錄更改
- 17. 版本控制API API
- 18. 版本控制
- 19. Yocto版本控制
- 20. 實現ASP.NET WebAPI版本控制的最佳方式是什麼?
- 21. 文件版本控制與版本控制
- 22. Crontab版本控制?
- 23. MySQL版本控制
- 24. PLC版本控制
- 25. SVN版本控制
- 26. 分層版本控制?
- 27. Pod版本控制深度
- 28. WebApi控制器
- 29. NHibernate版本控制
- 30. emacs本地版本控制
我正在序列化我的EF模型,它們只是POCO類 - 當我切換到Hibernate時,我可以使用這些類,例如,我只需要連接一些映射。 –
http://www.asp.net/web-api/overview/creating-web-apis/using-web-api-with-entity-framework/using-web-api-with-entity-framework,-part- 1 本教程似乎也可以。 –
是的,除了那個你觸摸那些實體的時候,你打破了所有的客戶端,因爲你的API依賴於它們。這正是你問這個問題的原因。我對此的回答非常簡單:**從不**連載您的域實體。 **總是**使用視圖模型。您在此鏈接的教程只是如何開始使用Web API的基本示例。當你想要設計一個真實世界的應用程序時,你需要考慮很多事情,而大多數*入門*教程都沒有涉及。其中之一就是版本控制。 –