phx.gen.json 命令的 Elixir Phoenix 问题
Elixir Phoenix problem with phx.gen.json command
我正在尝试创建一个项目,但我无法通过 API 创建对象,我仅使用命令来创建 Phoenix 项目,但它仍然不起作用。
重现步骤:
我正在使用以下命令
mix phx.new project --app project --module TodoList --no-html --no-webpack
cd project
mix ecto.create
mix phx.gen.json Accounts User users first_name:string last_name:string
然后我将资源添加到我的 router.ex
文件中,如下所示:
scope "/api", TodoListWeb do
pipe_through :api
resources "/users", UserController
end
最后:
mix ecto.migrate
mix phx.server
之后服务器启动没有任何问题,到目前为止一切正常,但是当我使用 Postman 在 http://localhost:4000/api/users
上执行 POST 请求时,我得到一个 400
状态码。
带有以下消息:
我可以在控制台中看到请求的输入:
%{"first_name" => "Jeff", "last_name" => "Doe"}
我认为您需要在请求中指定最外层的“用户”键,如:
%{"user" => %{"first_name" => "Jeff", "last_name" => "Doe"}}
因此您对 Postman 的 JSON 请求需要是:
{
"user": {
"first_name": "Jeff",
"last_name": "Doe"
}
}
我正在尝试创建一个项目,但我无法通过 API 创建对象,我仅使用命令来创建 Phoenix 项目,但它仍然不起作用。
重现步骤:
我正在使用以下命令
mix phx.new project --app project --module TodoList --no-html --no-webpack
cd project
mix ecto.create
mix phx.gen.json Accounts User users first_name:string last_name:string
然后我将资源添加到我的 router.ex
文件中,如下所示:
scope "/api", TodoListWeb do
pipe_through :api
resources "/users", UserController
end
最后:
mix ecto.migrate
mix phx.server
之后服务器启动没有任何问题,到目前为止一切正常,但是当我使用 Postman 在 http://localhost:4000/api/users
上执行 POST 请求时,我得到一个 400
状态码。
带有以下消息:
我可以在控制台中看到请求的输入:
%{"first_name" => "Jeff", "last_name" => "Doe"}
我认为您需要在请求中指定最外层的“用户”键,如:
%{"user" => %{"first_name" => "Jeff", "last_name" => "Doe"}}
因此您对 Postman 的 JSON 请求需要是:
{
"user": {
"first_name": "Jeff",
"last_name": "Doe"
}
}