我想創建一個鳳凰應用程序生成的HTML以及JSON API響應。這是我迄今所做的:鳳凰城json只返回ID
mix phoenix.gen.html User users name:string email:string
mix phoenix.gen.json Api.User users --no-model
然後,我從「別名MyApp.Api.User」到「別名Api.User」改變了別名UserController的。它的工作原理!主要是!
這是我得到的HTTP響應:
{"data":[{"id":1},{"id":2}]}
我想解決的問題是 - 當我打電話GET的API,我只是得到ID的列表;所有其他有用的字段不會被退回。 IO.inspect告訴我,控制器正在返回所有內容。所以它必須是過濾掉字段的視圖。
但是,我對Elixir/Phoenix的理解在這裏就不足了。這是我所看到的:
def render("index.json", %{users: users}) do
%{data: render_many(users, MyApp.Api.UserView, "user.json")}
end
我的基本問題是 - 如何在render_many方法潛水,並找出發生了什麼事,以解決這一問題?
我二次的問題是:
- 是否有良好的資源來獲得HTML和JSON API的鳳凰一起工作 ?
- 什麼是上面代碼中的「user.json」?關於「index.json」,我認爲它只用於模式匹配。
在這種情況下,控制器必須知道不管請求的資源是html還是json,都可能從連接對象中讀取。另一個問題是 - 默認的html和json API控制器是不同的。 json api控制器將狀態碼添加到響應中,而html控制器不會這樣做。 – Puneet
對於期望html的請求,狀態代碼並不重要。 @ user246615 – prM