phoenix-framework - phx.gen.json 命令的 Elixir Phoenix 问题
问题描述
我正在尝试创建一个项目,但我无法通过 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
之后服务器启动没有任何问题,到目前为止一切都很好,但是当我http://localhost:4000/api/users
使用 Postman 发出 POST 请求时,我得到一个400
状态码。
带有以下消息:
我可以在控制台中看到请求的输入:
%{"first_name" => "Jeff", "last_name" => "Doe"}
解决方案
我认为您需要在请求中指定一个最外层的“用户”键,如:
%{"user" => %{"first_name" => "Jeff", "last_name" => "Doe"}}
因此,您对 Postman 的 JSON 请求必须是:
{
"user": {
"first_name": "Jeff",
"last_name": "Doe"
}
}
推荐阅读
- c++ - 为什么枚举值的 initializer_list 不被视为常量表达式?
- python - 如何使用 webbrowser 用 pickle 保存 cookie
- python - pack-pad 会牺牲准确性吗?
- python - 加载 url 时 QWebView 崩溃
- python - TensorFlow 2 不显示 colab google 和 windows 10 中的版本
- python-2.7 - 如何使用python以相同的顺序对字典键进行排序
- javascript - Javascript:为什么需要 hasOwnProperty?
- r - 如何将非反应值与图形标题的反应值连接起来?R闪亮
- c# - HTTP 错误 500.19 - 访问网站时出现内部服务器错误
- shell - 使用 shell 脚本在列级别复制相同的值