我正在用phoenix构建微服务(api xml / json)。我有一个问题,如何在e剂中呈现错误。 所以我从控制器打来电话
render(conn, :data)
在我的DataView中,我调用方法
get_xml(params[:conn])
返回{:ok, "<some data>"} or {:error, 400}
我想呈现正确的错误。如果我愿意
params[:conn]
|> Plug.Conn.put_resp_content_type("application/xml")
|> Plug.Conn.resp(400, "<error data>")
|> Plug.Conn.send_resp
但是在发送响应之后,连接没有断开,并且连接继续并尝试发送下一个响应。所以我想我做错了。
P.S。我知道我可以从控制器执行所有这些操作,但是这样做的原因是Phoenix可以检测内容类型并在DataView包含
时调用正确的方法 def render("data.xml", params) do
...
end
def render("data.json", params) do
...
end