我有Restful WCF服务,该服务将用于读取互联网上托管的另一个Restful服务的数据推送。我必须公开一个方法来读取其他服务的Json数据推送。
[ServiceContract]
public interface ITestService
{
[OperationContract]
[WebInvoke( Method = "GET",
ResponseFormat = WebMessageFormat.Json )]
string GetData(string JsonData);
}
在字符串参数中接收数据是正确的,还是应该让DataContract(Class)接收Json数据。我知道其他服务推送Json数据的结构,是否可以制作Get Method? Push服务也可以一次发送大量数据。我如何限制它,以便我的服务器即使使用批量数据也能正常工作。
答案 0 :(得分:0)
我个人不喜欢WCF中的默认JSON处理,因此我们使用Newtonsoft.Json!我们将数据值定义为字符串,然后检查传入数据与JSON Schema文件。在我看来,这取决于你使用WCF的程度。为了使用,我们主要使用WCF用于我们使用定义的Data接口的tcp连接。 REST api仅用于内部调试,不会公开。所以一个明确记载的api并不重要。通过定义适当的数据合同,您可以利用WCF在restful service + / help的根URL下生成的自动文档。
无论如何,您不应该使用HTTP GET来接收推送通知。
POST / PUT将是推送通知的适当端点。下面的文章很好地解释了如何以及为什么定义REST路由:
http://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api#restful
希望有所帮助。