C# 是否有用于Web服务间通信的良好框架/模式/etc?
我有一堆C#.NET/OpenRasta web服务,我正在不断地添加这些服务 当一个新服务被添加时,通常情况下它是被添加的,因为它是已经在使用我的另一个web服务的应用程序所需要的。。。有时,新服务和现有服务之间存在明显的协同效应,这意味着我们可能需要调用其中一个,然后根据返回的结果调用另一个 这些服务存在于一个C#Visual studio项目中(不管是好是坏,这不是我的决定) 我正在寻找的是一个现有的API/库或一个模式或一个软件(或是一个说“你知道……OpenRasta可以开箱即用”的人的轻推),我可以在返回结果之前,让我的服务以非常松散和动态的方式相互交互 例如:假设我的一个服务是用户状态/数据存储,另一个是地理数据。 一个应用程序可以从用户服务中撤回一个用户,然后使用地理数据服务查找他的IP,但这需要应用程序进行两次服务调用 或者:假设我有一个库存数据服务,向我提供产品的详细信息,还有一个仓库库存级别的服务,向我提供当前库存和重新订购的数量,等等。 但是如果我想要股票描述和我们目前的股票数量,我必须从应用程序中打两个电话 如果我能得到某种框架,在那里我可以调用(比如…) 我的用户json对象返回时,其ip地址被一个名为“country”的字段替换,该字段通过将ip地址作为参数传递给/geo/country/fromIp服务方法来解析。 或者我可以打电话给股票服务公司,比如:C# 是否有用于Web服务间通信的良好框架/模式/etc?,c#,web-services,rest,C#,Web Services,Rest,我有一堆C#.NET/OpenRasta web服务,我正在不断地添加这些服务 当一个新服务被添加时,通常情况下它是被添加的,因为它是已经在使用我的另一个web服务的应用程序所需要的。。。有时,新服务和现有服务之间存在明显的协同效应,这意味着我们可能需要调用其中一个,然后根据返回的结果调用另一个 这些服务存在于一个C#Visual studio项目中(不管是好是坏,这不是我的决定) 我正在寻找的是一个现有的API/库或一个模式或一个软件(或是一个说“你知道……OpenRasta可以开箱即用”的人
GET
http://www.bar.com/product
{"desc": "/product?id=92236262", "stock":"/stock?id=92236262"}
然后返回一个json对象,它看起来像{“desc”:“棕色皮鞋,尺寸9 1/2”,“stock”:“7”}
我真的希望能够做到这一点,而无需将一种服务的知识硬编码到另一种服务中;因此,当添加新服务时,任何现有服务都可以使用它进行查找等
这是我自己编写代码所需要的,还是已经存在这样的东西了?OData的人正试图实现您所描述的URI组合。我认为他们实际上还没有实现 我认为这不是一个好主意,也没有必要,但这只是我的意见。如果您想要合成资源,那么在您的体系结构中创建一个层,明确地公开那些合成的资源。通过URI这样做是对耦合和性能问题的公开邀请
GET
http://www.bar.com/product
{"desc": "/product?id=92236262", "stock":"/stock?id=92236262"}