2016-08-05 13 views
0

Ich habe Restful WCF-Dienst, der verwendet wird, um den Datenschub durch einen anderen Restful-Dienst zu lesen, der irgendwo im Internet gehostet wird. Ich muss eine Methode offenlegen, um den JSON-Datenschub durch den anderen Dienst zu lesen.WCF-Rest-Service zum Empfang von Push-Benachrichtigungsdaten

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

Ist es richtig, Daten in String-Parameter zu erhalten oder sollte ich die Datacontract (Klasse), um die JSON-Daten zu empfangen. Ich kenne die Struktur der JSON-Daten durch andere Dienste und ist es in Ordnung, Get Method zu machen? Der Push-Dienst kann auch mehrere Daten gleichzeitig senden. Wie kann ich es beschränken, damit mein Server auch mit Massendaten funktioniert.

Antwort

0

Ich persönlich mag nicht die Standard-JSON-Behandlung in WCF und daher verwenden wir Newtonsoft.Json! Wir definieren die Datenwerte als Zeichenfolge und überprüfen dann die eingehenden Daten im Vergleich zu einer JSON-Schemadatei. Meiner Meinung nach kommt es darauf an, wie umfangreich Sie WCF nutzen. Zur Verwendung verwenden wir WCF hauptsächlich für TCP-Verbindungen, wo wir die definierten Datenschnittstellen verwenden. Die REST-API dient nur zum internen Debuggen und ist nicht exponiert. Eine klar dokumentierte API ist also nicht so wichtig. Durch Definieren von geeigneten Datenverträgen können Sie die automatisierten Dokumente verwenden, die WCF unter der Root-URL des Restful Service +/help generiert.

In jedem Fall sollten Sie kein HTTP GET verwenden, um Push-Benachrichtigungen zu erhalten.

POST/PUT wäre ein geeigneter Endpunkt für eine Push-Benachrichtigung. Der folgende Artikel beschreibt recht gut, wie und warum REST Routen den Weg zu definieren zu sein:

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

Hoffnung, das hilft ein wenig.