在 Phoenix 上创建新路线

Creating new route on Phoenix

我在 Phoenix 有一个应用程序,我使用 PostgreSQL 作为数据库。在我的数据库中,我有一个名为 "Device_Token" 的 table,其中存储了有人访问移动应用程序时创建的令牌。我需要在我的 API 中创建一个新路由 returns 这个令牌,这样我就可以在我的 React Native 代码中得到它。

我在 router.ex 文件中创建了一条新路线,如下所示:

get "/device_token", UserController, :device_token

然后我需要在我的 usercontroller.ex 文件中创建一个名为 "device_token" 的函数,returns 令牌代码。我认为类似于下面的代码,但我知道这是不对的。有人可以帮助我吗?如果您需要更多信息,请告诉我。

def device_token(conn, _params) do
    device_token = Repo.get(DeviceToken, id)
    render(conn, "device_token.json", device_token: device_token)
end

这些 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