【发布时间】:2011-09-27 11:26:48
【问题描述】:
我了解 Restler 会自动返回我的方法的结果以及 HTTP 状态代码 200(OK),如果我想返回错误响应,我会使用
throw new RestException(400); // returns HTTP 400 Bad Request
但是我如何返回一个响应,比如 HTTP 201 Created 以及结果值?
【问题讨论】:
我了解 Restler 会自动返回我的方法的结果以及 HTTP 状态代码 200(OK),如果我想返回错误响应,我会使用
throw new RestException(400); // returns HTTP 400 Bad Request
但是我如何返回一个响应,比如 HTTP 201 Created 以及结果值?
【问题讨论】:
我也打了这个,我手动返回成功状态:
return(array('success' => array('code' => 201, 'msg' => 'resulting value')));
如果您希望 RESTler 为您处理:
throw new RestException(201, 'resulting value');
但这将在“错误”状态下返回:
{
"error": {
"code": 201,
"msg": "resulting value"
}
}
【讨论】:
从 RESTLER 3 开始,您可以在 API 方法上方的文档注释中设置替代的肯定响应代码。例如,下面的 Doc Comment 设置了一个返回状态为 204 的 DELETE 路由(只要你不抛出 RESTException)
/**
* Delete an Attribute
* @status 204
* @url DELETE {eventTicketId}/registration/{eventTicketRegistrationId}/attribute/{attributeId}
*/
function deleteTicketRegistrationAttribute($eventTicketId,$eventTicketRegistrationId,$attributeId)
{
}
【讨论】:
header("HTTP/1.1 201 Some response");
应该有效
【讨论】: