Web services 在CF中实现webservice的最佳方法

Web services 在CF中实现webservice的最佳方法,web-services,coldfusion,cfml,cfc,Web Services,Coldfusion,Cfml,Cfc,我必须在ColdFusion中创建一个web服务。我试过以下两种方法。有人能帮我找到哪种方法是最好的(性能和安全增强基础) 第一条路 创建了一个cfm页面,如下所示 <cfset result = StructNew() /> <cfset resultStruct = StructNew() /> <cfset validStruct = StructNew() />

我必须在ColdFusion中创建一个web服务。我试过以下两种方法。有人能帮我找到哪种方法是最好的(性能和安全增强基础)

第一条路

创建了一个cfm页面,如下所示

    <cfset result               = StructNew() />
    <cfset resultStruct         = StructNew() />
    <cfset validStruct          = StructNew() />
    <cfset VARIABLES.Sample     = CreateObject("component","main.webservice.Sample")>

    <cfif NOT isDefined("URL.method")>
      <cfset result['status'] = false >
      <cfset result['message'] = 'method is missing' />
      <cfoutput>#SerializeJSON(result)#</cfoutput>
      <cfabort>
    </cfif>

    <cfswitch expression="#URL.method#">
      <cfcase value="get">
        <cfset fieldList = "name">
        <cfset validStruct = validate(fieldList) />
        <cfif validStruct['status']>
           <cfset resultStruct = VARIABLES.Sample.get(argumentCollection=URL) />
        </cfif>
        <cfoutput>#SerializeJSON(resultStruct)#</cfoutput>
        <cfbreak>
      </cfcase>

      <cfcase value="put">
        <cfset fieldList = "name,value">
        <cfset validStruct = validate(fieldList) />
        <cfif validStruct['status']>
          <cfset resultStruct = VARIABLES.Sample.put(argumentCollection=URL) />
        </cfif>
        <cfoutput>#SerializeJSON(resultStruct)#</cfoutput>
        <cfbreak>
     </cfcase>

     <cfdefaultcase>
        <cfset result['status'] = false >
        <cfset result['message'] = 'Not a valid method' />
        <cfoutput>#SerializeJSON(result)#</cfoutput>
        <cfbreak> 
     </cfdefaultcase>
   </cfswitch>

#序列化JSON(结果)#
#序列化JSON(结果结构)#
#序列化JSON(结果结构)#
#序列化JSON(结果)#
并在webservice文件夹下创建了一个名为“Sample”的cfc,如上所述

Web服务URL

第二种方式

直接从CFC样品中调用

示例1.CFC


Web服务URL


第二种方法是用CFML进行Web服务的标准方法。除了这些功能之外,您还需要获得基于标准的WSDL返回和定义。这是一个重建车轮的案例。我确信ws的底层CF代码是可以优化的,但它仍然很好,并且已经过数百万人的现场测试。

第二种方法是用CFML实现Web服务的标准方法。除了这些功能之外,您还需要获得基于标准的WSDL返回和定义。这是一个重建车轮的案例。我确信ws的底层CF代码是可以优化的,但它仍然很好,并且已经过数百万人的现场测试。

我建议在ColdFusion中设置RESTful web服务。这是一个让你开始的方法


尽管我没有使用过它,但也有一些工具声称可以简化它。

我建议在ColdFusion中设置RESTful web服务。这是一个让你开始的方法


虽然我没有使用过它,但也有一些方法声称可以使它更简单。

也许使用现有的框架会更好。你看过太妃糖吗?也许使用现有的框架会更好。你看过太妃糖吗?
<cfcomponent displayname="Sample" hint="Sample WebService" output="false">

  <cffunction name="get" access="remote" returntype="struct" returnformat="json">
     <cfargument name="name" required="true" type="string" >

     <cfreturn StructNew() />        
  </cffunction>

  <cffunction name="put" access="remote" returntype="struct" returnformat="json">
     <cfargument name="name" required="true" type="string" >
     <cfargument name="value" required="true" type="string" >

     <cfreturn StructNew() />        
  </cffunction>

</cfcomponent>