ColdFusion的10 REST API:如何设置状态代码201没有RestSetRespons

2019-08-18 06:45发布

我使用的ColdFusion 10的新的内置REST API,我想返回的201(创建)一个状态码。 我第一次尝试是在这里描述的RestSetResponse()方法: http://www.adobe.com/devnet/coldfusion/articles/restful-web-services.html 。 它运作良好,但它迫使你函数的返回类型设置为“无效”。 与“空”的问题是,每当我抛出一个异常,它不再返回正确的JSON错误消息。

抛出此异常:

<cfthrow errorcode="400" message="Validation error." />

返回时,返回类型是“结构”格式良好的JSON:

HTTP/1.1 400 Bad Request
Content-Type: application/json

{"Message":"Validation error."}

但是当返回类型为“无效”(这是需要使用RestSetResponse(),该响应是有些难看HTML响应。

正因为如此,我不得不恢复使用的返回类型“结构”,放弃了RestSetResponse(),并尝试这样的:

<cfheader statusCode="201" statusText="Created" />

但是,这是行不通的。 看来,ColdFusion的覆盖的StatusCode,总是返回200(OK)时,它的成功。 任何人都知道的一种方式来改变状态码201没有设置功能为“无效”的返回类型?

Answer 1:

我看不到一个很好的理由restSetResponse()应该需要一个void返回类型,但已经证实,如果这是不是这种情况就被忽略。 这是一个有点垃圾。

我可以在你的情况的工作思维方式的唯一一件事就是滚你自己的结构在它的错误详细信息,然后用其作为content的设定值restSetResponse()调用。

这是一个有点杰里建,但你在这种情况下的ColdFusion的杰里 - 内置内斯constrainted,我想。

我记录一个错误与此。



文章来源: ColdFusion 10 REST API: How to set status code 201 without RestSetResponse()