2

一直在玩 Apigility,有些东西我不喜欢。我在实体映射器中的删除方法如下所示:

public function delete($id)
{
    $affectedRows = $this->table->delete(
        array('userId' => $id)
    );
    if (0 === $affectedRows) {
        throw new DomainException('ID not found', 500);
    }
    return $affectedRows;
}

在匹配的实体资源中,我得到了:

public function delete($id)
{
    $affectedRows = $this->mapper->delete($id);
    return new ApiProblem(200, 'Affected rows count ' . $affectedRows);
}

但我认为为 200 代码调用 ApiProblem 是不合适的。有什么适合成功手术的吗?

4

2 回答 2

3

application/problem+json不是成功操作的正确响应。

您应该正常返回状态码为 200 的响应,或者状态码为 204 的无响应。

当找不到资源时,您可以使用 ApiProblem。

作为旁注:域异常不适合运行时条件,它通常指向软件中的错误。

于 2014-10-21T22:00:01.737 回答
1

ApiProblem在这种情况下不应该使用。仅应在出现问题/错误时返回。 在此处阅读 StackOverflow 上的答案,以获取有关如何响应成功删除操作的参考。

于 2014-10-22T07:22:06.747 回答