我在Phoenix有一个应用程序,并且我使用PostgreSQL作为数据库。在我的数据库中,我有一个名为“ Device_Token”的表,该表存储了有人访问移动应用程序时创建的令牌。我需要在API中创建一条返回此令牌的新路由,以便可以在我的React Native代码中获取它。
我在router.ex文件中创建了一条新路由,如下所示:
get "/device_token", UserController, :device_token
然后,我需要在usercontroller.ex文件中创建一个返回令牌代码的名为“ device_token”的函数。我认为是类似下面的代码,但是我知道这是不对的。有人可以帮助我吗?如果您需要更多信息,请告诉我。
def device_token(conn, _params) do
device_token = Repo.get(DeviceToken, id)
render(conn, "device_token.json", device_token: device_token)
end
答案 0 :(得分:2)
这些phoenix docs向您展示了如何呈现json而不是html页面,因此您可以执行以下操作:
router.ex:
get "/token/:id", UserController, :token
user_controller.ex:
def token(conn, %{"id" => id}) do
token = Repo.get(DeviceToken, id)
render(conn, "show.json", token: token)
end
user_view.ex:
defmodule HelloWeb.PageView do
use HelloWeb, :view
def render("show.json", %{token: token}) do
%{data: %{device_token: token} }
end
end