Podczas tworzenia mojej usługi WCF pierwotnie planowałem użycie REST, ale później okazało się, że będzie ona wywoływana za pomocą SOAP. Udekorowałem moje metody zarówno SOAP OperationalContract
i reszta WebInvoke
ale utworzył tylko punkt końcowy SOAP.
public interface IMyService
{
[OperationContract]
[WebInvoke(UriTemplate = "GetData/{ID}/{Name}", Method = "GET",
ResponseFormat = WebMessageFormat.Json,
RequestFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.WrappedRequest)]
string GetData(string ID, string Name);
}
Moje pytanie brzmi, jakie są możliwe implikacje użycia obu OperationalContract
i WebInvoke
, Jeśli w ogóle? Czy są wady?
Czy powinienem zachować to tak, jak jest, w razie późniejszego może być konieczne dodanie punktu końcowego REST? Albo powinienem usunąć WebInvoke
?
Odpowiedzi:
0 dla odpowiedzi № 1Moje pytanie brzmi, jakie są możliwe implikacje użycia obu OperationalContract i WebInvoke, jeśli istnieją? Czy są wady?
Nie, nie ma żadnych wad, poza tym, że dodajesz kod, którego nigdy nie można użyć.
Ponadto w przypadku informacji OperacjaContract dotyczy wszystkich operacji WCF, a nie tylko operacji SOAP. Potrzebujesz go również do REST.