所以在過去,我工作的網站依賴於單層體系結構,將數據訪問直接與應用程序和視圖代碼混合在一起。我最近確信團隊實施數據訪問服務層(API)的優勢;特別是最近關於水平縮放(原生移動應用等)的討論。API數據服務層的最佳解決方案
現在想到的實現方法是使用Entity Framework
將數據庫映射到Data Contract
類,客戶端將使用WCF
服務請求這些類。
我以前在小範圍內使用過這種方法,但現在已經有了大量數據對象的範圍,每個數據對象都有很多標準可以查詢,我在設計如何構建API時遇到了問題。
數據類的示例清單:
- 產品
- 商家
- 品牌
- 分類
- 券
- 用戶
- 評價 個
- 問題
- 解答
- 等
(希望這些對象是相關的方式已相當明顯,使我的觀點)
服務要求
- 服務必須與語言無關(.net,php,java,objective c )
- 模式必須允許作爲一個API(說我們的用戶存儲在MSSQL服務器幾個不同的數據源,我們的評論系統,MySQL和我們的產品都從XML提要)
- 一定能夠實現目標從API端緩存
這些數據對象中的每一個本質上都需要基於它的幾個列進行查詢(以返回單個對象或集合)。雖然我可以爲每個不同的場景編寫一個新的API方法,但我認爲必須有一個更優雅的方法來完成這個任務。
請求示例:
- 通過ID獲取單品。
- 獲取按「創建日期」,「價格」或「折扣」排序的特定商家,品牌或分類的產品列表。
- 獲取由用戶
- 所有提交的評論得到一個產品
- 的所有評論...
在我的研究中,我遇到了這個MSDN Article概述了幾種創建API的標準方法。我有興趣瞭解每種方法的優缺點,以及哪種方法似乎適合我上面描述的最佳模型。
我有複數訂閱。我會檢查出來的。感謝您的指導。我一直在做的所有研究一直在引導着我在很多不同的方向,我開始忽視我需要的東西。 – NSjonas
查看史蒂夫史密斯視頻,然後Julie Lerman視頻,然後查看GLANCE例子的ACCOUNT。如果你沒有研究時間,請直接舉個例子。它使用這樣一種模式,並且他們會完成如何做到這一點。爲旅程開始的人提供了很好的介紹。在一天結束時,像http://my.safaribooksonline.com/book/programming/csharp/0131857258和http://my.safaribooksonline.com/book/software-engineering-and-development/0321125215這樣的實體設計原則是更重要 。 –
再次感謝,我對學校的這些模式/原則有了很高的理解,但我從未親自實施過這些模式/原則。 – NSjonas