Rest Services
<system.serviceModel >
<services>
<service name="WcfRestfulService.HttpService"
behaviorConfiguration="ServiceBehaviour" >
<endpoint address=""
binding="webHttpBinding"
<!-- Add reference to secure WebHttpBinding config -->
bindingConfiguration="webHttpTransportSecurity"
behaviorConfiguration="web"
contract="WcfRestfulService.IHttpService" />
<!-- Need to make sure that our metadata
publishing endpoint is using HTTPS as well -->
<endpoint address="mex"
binding="mexHttpsBinding"
contract="IMetadataExchange" />
</service>
<!-- Add secure WebHttpBinding config -->
<bindings>
<webHttpBinding>
<binding name="webHttpTransportSecurity">
<security mode="Transport" />
</binding>
</webHttpBinding>
</bindings>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="ServiceBehaviour">
<serviceMetadata httpsGetEnabled="true"
<!-- Make sure the service can
be accessed only via HTTPS -->
httpGetEnabled="false"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="web">
<webHttp/>
</behavior>
</endpointBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true"/>
</system.serviceModel>
[ServiceContract]
public interface IProductService
{
[OperationContract]
[WebInvoke(Method = "GET", UriTemplate = "", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
List<Product> GetProducts();
[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "", RequestFormat = WebMessageFormat.Json)]
void CreateProduct(Product product);
[OperationContract]
[WebInvoke(Method = "GET", UriTemplate = "/{ProductId}", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
Product GetProductById(string productId);
[OperationContract]
[WebInvoke(Method = "PUT", UriTemplate = "/{ProductId}", RequestFormat = WebMessageFormat.Json)]
Product UpdateProductDetails(string productId);
[OperationContract]
[WebInvoke(Method = "DELETE", UriTemplate = "/{ProductId}", RequestFormat = WebMessageFormat.Json)]
Product DeleteProduct(string productId);
}
[OperationContract]
[WebGet(UriTemplate = "/Ping",
RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare)]
string Ping();
[OperationContract]
[WebInvoke(UriTemplate = "/CreateNewIssue", Method = "POST",
RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
string CreateNewIssue(string json);