2014-10-21 31 views
2

一直在玩Apigility,有一些我不喜欢。我在实体映射删除方法是这样的:Apigility:ApiProblem的替代?

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); 
} 

但我认为这是不appropiate调用ApiProblem为200码。有什么适合做成功的吗?

回答

3

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

你应该正常返回响应的状态代码:200或与状态码204

没有任何反应,就可以使用ApiProblem时未找到资源。

备注:域异常不适合运行时状况,它通常指向软件中的错误。

+0

我明白了,但是如果我想发送一个自定义消息以及200,我应该使用哪个对象? – Illiax 2014-10-22 16:32:21

+0

@Illiax这将是'ZF \ ContentNegotiation \ ViewModel' iirc。虽然我没有安装atm的apigility来验证。 – Xerkus 2014-10-22 16:57:32

+0

我试过返回一个viewModel实例,但我得到422“无法删除实体”错误。 (在数据库中删除工作) – Illiax 2014-11-03 18:59:09