我需要为我的应用程序创建Restful服务。更多我深入研究这一点我感到困惑。据我所知,Restful服务使用http进行 CRUD 操作,这使得它更快更轻。但我不确定如何确定Web服务是否为Restful。
但是我在网上找到了一些声称是Restful服务但有一些 Custombinding 类型的帮助。以下是web.config的外观
<system.serviceModel>
<services>
<service behaviorConfiguration="" name="RestRaw.Service1">
<endpoint address="" behaviorConfiguration="web" contract="RestRaw.IService1" binding="customBinding" bindingConfiguration="RawReceiveCapable"></endpoint>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior>
<!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="true"/>
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="web">
<webHttp/>
</behavior>
</endpointBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
<bindings>
<customBinding>
<binding name="RawReceiveCapable">
<webMessageEncoding webContentTypeMapperType="RestRaw.RawContentTypeMapper, RestRaw, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<httpTransport manualAddressing="true" maxReceivedMessageSize="524288000"
transferMode="Streamed" />
</binding>
</customBinding>
</bindings>
</system.serviceModel>
这是 Restful service 。如果是的话怎么能确定?
目前我很困惑任何澄清我怀疑的建议都会受到赞赏。
答案 0 :(得分:2)
在这种特殊情况下,您可以通过添加的行为告诉它是一种REST风格的Web服务。
<endpointBehaviors>
<behavior name="web">
<webHttp/>
</behavior>
</endpointBehaviors>
webHttp行为修改了操作调度管道,而不是从SOAP主体读取目标操作,它使用服务接口属性来决定将其路由到何处。 Here is a good page on msdn显示了在WCF中创建REST样式Web服务的基础知识。以下示例来自该页面。
[ServiceContract]
interface ICustomer
{
//"View It" -> HTTP GET
[WebGet( UriTemplate="customers/{id}" )]
Customer GetCustomer( string id ):
//"Do It“ -> HTTP PUT
[WebInvoke( UriTemplate="customers/{id}", Method="PUT" )]
Customer UpdateCustomer( string id, Customer newCustomer );
}
WebGet属性与GET谓词匹配,然后请求URI模式匹配以决定调用哪个方法。然后可以提取部分URI并将其转换为参数并传递给方法调用。在第二种方法UpdateCustomer中,Customer参数来自请求正文,因为它是唯一不能在其他地方匹配的参数。为了像这样使用请求体,webMessageEncoding绑定元素用于自定义绑定。如果您只是使用WebHttpBinding,它会为您完成所有这些操作。您提供的配置是以明确的方式进行的。
答案 1 :(得分:1)
web.config文件显示了典型的WCF应用程序。要检查它是否为RESTful,您可能会学习与WCF REST相关的主题,例如