2016-08-05 4 views
0

У меня есть Restful WCF-сервис, который будет использоваться для чтения данных, которые будут удаляться другими службами, поддерживаемыми где-то в Интернете. Я должен разоблачить один метод, чтобы прочитать Json data push другой службой.Служба WCF Rest для получения данных Push Push

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

ли право на получение данных в параметре строки или я должен сделать DataContract (Class), чтобы получить данные в формате JSON. Я знаю структуру Json data push другой службой, и нормально ли использовать метод Get? Кроме того, служба Push может отправлять сразу массу данных. как я могу его ограничить, поэтому мой сервер отлично работает даже с объемными данными.

ответ

0

Мне лично не нравится обработка JSON по умолчанию в WCF, и поэтому мы используем Newtonsoft.Json! Мы определяем значения данных как строку, а затем проверяем входящие данные по сравнению с файлом схемы JSON. По-моему, это зависит от того, насколько обширны вы используете WCF. Для использования мы используем WCF прежде всего для соединений tcp, где мы используем определенные интерфейсы данных. REST api предназначен только для внутренней отладки и не подвергается воздействию. Таким образом, четко документированная ави не так важна. Определяя правильные контракты с данными, вы можете использовать автоматические документы WCF, создаваемые под корневым URL-адресом службы +/help.

В любом случае вы не должны использовать HTTP GET для получения push-уведомлений.

POST/PUT будет подходящей конечной точкой для push-уведомления. В следующей статье объясняется довольно хорошо, как и почему, чтобы определить Rest маршрутизирует способ быть:

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

Надежда, что помогает немного.