【问题标题】:How do I return positive responses other than HTTP 200 OK with Luracast Restler?我如何使用 Luracast Restler 返回 HTTP 200 OK 以外的积极响应?
【发布时间】:2011-09-27 11:26:48
【问题描述】:

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

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

但是我如何返回一个响应,比如 HTTP 201 Created 以及结果值?

【问题讨论】:

    标签: php api rest


    【解决方案1】:

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

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

    如果您希望 RESTler 为您处理:

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

    但这将在“错误”状态下返回:

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

    【讨论】:

    • 遇到同样的问题。第一个代码块看起来很合理,虽然它是“手动的”。
    【解决方案2】:

    从 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)
    {
    
    }
    

    【讨论】:

      【解决方案3】:
      header("HTTP/1.1 201 Some response");
      

      应该有效

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-10-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-25
        • 2015-03-11
        相关资源
        最近更新 更多