从单个ColdFusion REST端点返回多种数据类型?

时间:2017-08-04 20:57:05

标签: rest coldfusion

我正在尝试设置一个ColdFUsion REST端点,该端点可以返回任意数量格式的文件可以返回标准错误消息,但一直遇到问题,使其正常工作。例如,用户应该能够发送GET请求,例如:

https://foo.com/rest/files/123?format=pdf

这将以pdf格式返回标识为123的文件。并且,如果用户将format更改为txt,则相同的端点将以文本格式返回文件。 ,如果没有标识为123的文件,端点将返回404错误。

我遇到的问题有两个:

  1. ColdFusion似乎没有给我一种方法来指定我返回的文件的mime或内容类型,并且回退到由Accept标头发送的任何内容。客户。如果客户端没有发送该标头,这尤其是一个问题。
  2. 如果客户端发送Accept application/pdf标头,我就无法获得CF以返回除500以外的任何错误以及来自CF的错误,不是来自我。
  3. 我的端点处理程序的代码是这样的:

    <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>
    

    有什么想法?提前谢谢。

0 个答案:

没有答案