saa*_*saa 10 elixir phoenix-framework
我在凤凰上建立了宁静的api(json).而且我不需要html的支持.
如何覆盖凤凰城的错误?示例错误: - 500 - 404没有找到路由和其他.
对于那些可能遇到同样问题的人来说,需要几个步骤来为404和500响应呈现JSON.
首先添加render("404.json", _assigns)和render("500.json", _assigns)你的应用程序的web/views/error_view.ex文件.
例如:
defmodule MyApp.ErrorView do
use MyApp.Web, :view
def render("404.json", _assigns) do
%{errors: %{message: "Not Found"}}
end
def render("500.json", _assigns) do
%{errors: %{message: "Server Error"}}
end
end
Run Code Online (Sandbox Code Playgroud)
然后在您的config/config.exs文件中更新default_format到"json".
config :my_app, MyApp.Endpoint,
render_errors: [default_format: "json"]
Run Code Online (Sandbox Code Playgroud)
请注意,如果您的应用程序纯粹是一个REST API,那么这很好,但是如果您现在也提供HTML响应,请注意,默认情况下,错误将呈现为json.
您需要定制MyApp.ErrorView。Phoenix 在 web/views/error_view.ex 中为您生成此文件。模板的默认内容可以在Github上找到。
另请参阅有关自定义错误的文档,尽管它们似乎有点过时,因为它们指示您使用MyApp.ErrorsView(复数),它被替换为MyApp.ErrorView
| 归档时间: |
|
| 查看次数: |
2814 次 |
| 最近记录: |