我有一堆C#.NET/OpenRasta Web服務,我不斷添加到。Inter-Webservice通信是否有良好的框架/模式/等?
當添加一個新服務時,通常情況下是因爲已經使用另一個Web服務的應用程序需要添加新服務......有時,只是存在明顯的協同作用在新服務和現有服務之間,這意味着我們可能想調用一個服務,然後在返回的結果上調用另一個服務。
這些服務生活在一個C#的Visual Studio項目(或好或壞,這不是我的決定做)。
我正在尋找的是一個現有的API /庫或模式或軟件(或從某人說「你知道... ... OpenRasta可以做那個開箱」)我可以用於允許我的服務以非常寬鬆和動態的方式與對方交互,然後返回結果。
例如:可以說,我的服務之一是用戶狀態/數據存儲,另一個是地理數據。 應用程序可能會將用戶從用戶服務中撤回,然後使用地理數據服務查看其IP,但這需要應用程序發出2個服務調用。
或者說我有一個庫存數據服務,它提供有關產品的詳細信息和倉庫庫存水平服務,爲我提供當前庫存和重新訂購數量等。 但是,如果我想要庫存描述和我們現在有庫存的數量,我將不得不從應用程序進行兩次調用。
什麼將是很好的,如果我能得到某種框架,我可以打電話(像)..
http://www.foo.com/user?id=8890823123&ip=county:geo|country|fromIp
和我的用戶JSON對象會回來,它是由一個場代替IP地址稱爲「國家」,通過將IP地址作爲參數傳遞給/ geo/country/fromIp服務方法來解決該問題。 或者如果我可以叫股票的服務,如:
GET
http://www.bar.com/product
{"desc": "/product?id=92236262", "stock":"/stock?id=92236262"}
,並取回一個看起來像{「desc」的一個JSON對象:「棕色皮鞋,大小9 1/2」,「股票」:「7 「}
我真的希望能夠做到這一點沒有硬編碼一個服務的知識轉化爲其他的;這樣,當添加新服務的任何現有的可以用它做一下起坐等
這是不是我需要自己的代碼或做已經存在這樣的事情?