2016-08-05 50 views
0

我有Restful WCF服務,它將用於讀取由互聯網上某處託管的另一個Restful服務推送的數據。我必須公開一種方法來讀取其他服務推送的Json數據。WCF Rest服務接收推送通知數據

[ServiceContract] 
public interface ITestService 
{ 
    [OperationContract] 
    [WebInvoke(Method = "GET", 
     ResponseFormat = WebMessageFormat.Json)] 
    string GetData(string JsonData); 
} 

是否正確接收字符串參數中的數據,或者我應該讓DataContract(Class)接收Json數據。我知道其他服務推送的Json數據的結構,並且可以使Get方法成功嗎?此外,推送服務可以一次發送大量數據。我如何限制它,以便我的服務器即使使用批量數據也能正常工作。

回答

0

我個人不喜歡WCF中的默認JSON處理,因此我們使用Newtonsoft.Json!我們將數據值定義爲字符串,然後檢查傳入數據與JSON模式文件。在我看來,這取決於你使用WCF的程度。爲了使用,我們使用WCF主​​要用於我們使用定義的數據接口的tcp連接。 REST api僅用於內部調試,不會暴露。所以一個明確記錄的API並不重要。通過定義正確的數據合約,您可以利用WCF在restful service +/help的根網址下生成的自動文檔。

無論如何,你不應該使用HTTP GET來接收推送通知。

POST/PUT將是推送通知的適當端點。下面的文章介紹得很好如何和爲什麼來定義REST路由的方式是:

http://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api#restful

希望有點幫助。