В моем API Phoenix JSON я получаю Ecto NoResultsError, когда запрашиваю объект, которого нет в базе данных.
Я хочу, чтобы мой JSON API возвращал нуль вместе с ошибкой 404.
Как бы я это сделал?
В настоящее время у меня в значительной степени есть сгенерированный по умолчанию контроллер / представления html и т. Д. Я изменил контроллер следующим образом:
def show(conn, %{"id" => id}) do
my_model = Repo.get!(MyModel, id)
case get_format(conn) do
"json" ->
render(conn, my_model: my_model)
_ ->
render(conn, "show.html", my_model: my_model)
end
end
вместе с видом:
defmodule MyProject.MyModelView do
use Laired.Web, :view
def render("show.json", %{my_model: my_model}) do
my_model
end
end
Связанный:
Настройка пользовательского ответа для исключения в приложении Phoenix