Вот основной рабочий пример ...
Шаг 1: Создание феникс приложение
например, exjson для ExampleJson или любое имя ваше, как
mix phoenix.new exjson --no-ecto --no-brunch --no-html
Шаг 2: Настройка маршрутизатора
Добавить эту область для веба/router.ex файла
scope "/api/v1", Exjson do
pipe_through :api
resources "/users", UserController
end
Шаг 3: Поместите фиктивные данные где-то переменный ток cessible к приложению
priv/data/MOCK_DATA.json
Шаг 4: Установка UsersController
Придумайте контроллера Users как имеющие ряд действий (функций) где conn struct подается в с вашего феникс конечной точки вместе с любыми параметрами
defmodule Exjson.UserController do
use Exjson.Web, :controller
# GET http://localhost:4000/api/v1/users/
def index(conn, _params) do
users = File.read!(file) |> Poison.decode!()
render conn, users: users
end
# GET http://localhost:4000/api/v1/users/1
def show(conn, params) do
users = File.read!(file) |> Poison.decode!()
render conn, user: users |> Enum.find(&(&1["id"] === String.to_integer(params["id"])))
end
defp file() do
Path.join(:code.priv_dir(:exjson), "data/MOCK_DATA.json")
end
end
Шаг 5: Настройка UsersView
Вы также можете думать о пользователях Просмотр в виде имеющих функции, которые будет обрабатывать данные, полученные от контроллера в соответствующим образом. В этом случае вы используете данные json, поэтому phoenix имеет некоторые встроенные функции, которые помогут в этом.
defmodule Exjson.UserView do
use Exjson.Web, :view
def render("index.json", %{users: users}) do
render_many(users, __MODULE__, "user.json")
end
def render("show.json", %{user: user}) do
render_one(user, __MODULE__, "user.json")
end
def render("user.json", %{user: user}) do
%{
id: user["id"],
name: user["name"],
email: user["email"]
}
end
end
Итак, вы просто хотите издеваться над ответом, чтобы начать работу быстрее, и заменить его «реальной» реализацией позже? Наверное, это не должно быть готово к производству. –
@PatrickOscity да, точно. –