除了使用Luracast Restler的HTTP 200 OK之外,我如何返回正响应?

时间:2011-09-27 11:26:49

标签: php api rest

我理解Restler会自动使用HTTP状态代码200(OK)返回我的方法的结果,如果我想返回错误响应,我会使用

throw new RestException(400); // returns HTTP 400 Bad Request

但是,如何返回响应,例如,HTTP 201 Created以及结果值?

3 个答案:

答案 0 :(得分:3)

我也打了这个,我手动返回成功状态:

return(array('success' => array('code' => 201, 'msg' => 'resulting value')));

如果您希望RESTler为您处理它:

throw new RestException(201, 'resulting value');

但是会在“错误”状态下返回:

{
    "error": {
        "code": 201,
        "msg": "resulting value"
    }
}

答案 1 :(得分:3)

从RESTLER 3开始,您可以在API方法上方的文档注释中设置备用肯定响应代码。例如,下面的Doc Comment设置DELETE路由,返回状态为204(只要不抛出RESTException)

/**
 * Delete an Attribute
 * @status 204
 * @url DELETE {eventTicketId}/registration/{eventTicketRegistrationId}/attribute/{attributeId}
 */

function deleteTicketRegistrationAttribute($eventTicketId,$eventTicketRegistrationId,$attributeId)
{

}

答案 2 :(得分:2)

header("HTTP/1.1 201 Some response");

应该有效