2016-09-03 5 views
1

私はElixir 1.3.2とPhoenix 1.2.1が新しく、thisチュートリアルの後にphoenixにユーザオブジェクト(マップ)を投稿しようとしています。私は郵便配達員と正しいURL http://localhost:4000/api/usersを使用しています。最初に私はjsonオブジェクトで未加工の本体を試しましたが、欠落しているキーの例外がありました:予想されるキー "user"がparamsに存在することを期待してください、またはscrub_params/2の呼び出しを適用してください。JSONを使用してPhoenixにマップを投稿するにはどうすればよいですか?

"User"と値: "{email:" [email protected] "、パスワード:" s3cr3t "}"という郵便配達員のformdataオプション。これは、エリクシールAPIからの次のエラー応答をもたらしました。予想されるパラメータがマップであること。"{email: \"[email protected]\", password: \"s3cr3t\"}"

誰かが間違っていることを教えてもらえますか? JSONがマップにシリアライズ/マッチングされるようにするには?

答えて

0

サーバーに送信する必要がJSONは、トップレベルのユーザーのキーがあるか

{ 
    "user": { 
    "email": "[email protected]", 
    ... 
    } 
} 

ノートのようなものを見てする必要があります。これはあなたのエラーの意味です

expected key "user" to be present in params

+0

あなたが提案しているフォーマットは機能していません。私はエラーを受け取ります: 予想されるキー "user"がparamsに存在することを期待してキーを送信するか、scrub_params/2の呼び出しを受け入れてください 私はuser:{"email": "[email protected]" "パスワード": "秘密"}しかし、私は得る: 期待されているパラメータはマップ、 "secret \"} "' – programmingheadaches

+0

デベロッパーモードでのリクエストごとに、Phoenixはあなたのパラメータが何であるかを伝えます。例として、私は自分のサービスにログインしていますが、コンソールは '%{" _ csrf_token "=" "..."、 "_utf8" => "✓"、 "session" =>%{" email "=>" [email protected] "、" password "=>" [FILTERED] "}}}。この場合、私はセッションを扱っているので、私の「セッション」キーは最上位にあります。あなたのパラメータリストのトップレベルに「ユーザー」キーがありますか? –

+0

コンソールはフェニックスのコンソールで、http要求のjson本体ではありませんか?私のリクエストボディのルートにユーザーキーがあります – programmingheadaches

関連する問題