我正在尝试设置一个ColdFUsion REST端点,该端点可以返回任意数量格式的文件和可以返回标准错误消息,但一直遇到问题,使其正常工作。例如,用户应该能够发送GET请求,例如:
https://foo.com/rest/files/123?format=pdf
这将以pdf格式返回标识为123
的文件。并且,如果用户将format
更改为txt
,则相同的端点将以文本格式返回文件。 和,如果没有标识为123
的文件,端点将返回404错误。
我遇到的问题有两个:
Accept
标头发送的任何内容。客户。如果客户端没有发送该标头,这尤其是一个问题。Accept
application/pdf
标头,我就无法获得CF以返回除500
以外的任何错误以及来自CF的错误,不是来自我。我的端点处理程序的代码是这样的:
<cfcomponent rest="true" restpath="/files/{fileId}" produces="application/json,text/html,application/pdf">
<cffunction name="getFile" access="remote" returnType="any" httpMethod="get">
<!--- query database for file details --->
<cfif qry.RecordCount eq 0>
<cfreturn "404 Not Found" />
<cfelse>
<cfset fileBinary = fileReadBinary(qry.filePath) />
<cfreturn fileBinary />
</cfif>
</cffunction>
</cfcomponent>
有什么想法?提前谢谢。