3

在 ColdFusion Lucee 上创建我的第一个 RestFul Web 服务。

这些是我遵循的步骤。

  1. 在 ROOT 上创建名为“RestAPI”的文件夹
  2. 在 RestAPI/API 下创建子文件夹(用于 CFC)
  3. 创建 CFC RestAPI/API/Hello.cfc

你好.cfc

<cfcomponent rest="true" restpath="/hello"> 
    <cffunction name="formPost" access="remote" returnType="String" httpMethod="POST" restPath="/form">
        <cfargument name="firstname" type="String" restArgSource="Form">
        <cfargument name="lastname" type="String" restArgSource="Form">
        <cfset res="firstname : " & #firstname# & " lastname : " & #lastname#>
        <cfreturn res>
    </cffunction>
</cfcomponent>
  1. 创建 CFM Call.cfm

呼叫.cfm

<cfhttp url="http://mydev:8888/rest/Example/hello/form" method="POST" result="res" port="8888">
    <cfhttpparam type="formfield" name="firstname" value="Dan">
    <cfhttpparam type="formfield" name="lastname" value="Bin">
  1. 在 lucee 管理服务器中创建了一个映射。/Example

当我运行 Call.cfm 时,我得到了这个输出

在映射 [/Example] 中找不到 [/RestAPI/call.cfm] 的休息服务

请参阅随附的屏幕截图

只想知道为什么它在根文件夹中不起作用

4

1 回答 1

1

从您最初的屏幕截图中,我发现问题似乎在于您如何调用call.cfm模板。被报告的错误信息是:

在映射 [/Example] 中找不到 [/RestAPI/call.cfm] 的休息服务

这告诉我它正在通过您的 REST API 寻找服务,而不是简单地调用模板。我认为这是因为您在 URL 中引用了您的call.cfm模板。/rest/再次从屏幕截图中,我在浏览器的地址栏中看到了这一点:

mydev:8888/rest/RestAPI/call.cfm

这是我建议将您的call.cfm模板移出该子文件夹并进入 Web 根目录的时候。call.cfm但是,我认为如果您在文件包含在您的/RestAPI/文件夹中时正确引用它,它也会起作用。您应该可以像这样引用它:

mydev:8888/RestAPI/call.cfm

请注意,我已从/rest/该 URL 中删除了浏览器请求的引用。不过,您仍然需要在通话中提供/rest/参考。<cfhttp>

最后一个问题请在答案框中回答。我可以将多个组件 (cfcs) 文件保存在一个文件夹和地图中吗?

是的,您可以在 API 文件夹中保留多个 CFC。

于 2015-11-11T13:03:36.280 回答