Apigility: альтернатива ApiProblem?

Я немного поиграл с 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);
}

но я думаю, что не стоит вызывать ApiProblem для кода 200. Есть что-нибудь, что подходит для успешной операции?

2

Решение

application/problem+json НЕ правильный ответ для успешной работы.

Вы должны возвращать ответ обычно с кодом состояния 200 или без ответа с кодом состояния 204.

И вы можете использовать ApiProblem, когда ресурс не найден.

Как примечание: исключение домена не подходит для условий выполнения, оно обычно указывает на ошибку в программном обеспечении.

3

Другие решения

ApiProblem не следует использовать в этом случае. Он должен быть возвращен только в случае проблем / ошибок.
Прочитайте ответ на StackOverflow здесь для ссылки на то, как реагировать на успешные операции удаления.

1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector