2016-06-11 6 views
0

Phoenixを基本的なJSON APIとして使用していますが、リクエスタが正しい引数を渡しているかどうかをチェックする方法がいくつかあります。正しいパラメータがPhoenixに渡されています

は、ユーザーが以下の身体を必要とするポスト要求を行うと言う:

{ 
    "user": { 
    "email": "[email protected]", 
    "password": "mangoes" 
    } 
} 

私は、ユーザーがユーザーオブジェクトにメールアドレスとパスワードで合格したことを確認したいです。現時点では私は私のコントローラのアクションでこのような何かをやっている:

params[user][email] and params[user][password] 

は確かに正しいパラメータをチェックするためのより良い方法があります。 scrub_paramsと何か関係がありますか?もしそうなら、デフォルトのInternal server errorの代わりにいいJSONエラーメッセージを返すにはどうすればいいですか?

アドバイスありがとうございます。

答えて

2

あなたは、このアプローチの例についてアクション自体

def show(conn, %{"user" => %{"email" => email, "password" => password}} = params) do 
    render conn, "show.html", messenger: messenger 
    end 

でパラメータに迅速な対応のためのoffical docs here

+0

おかげで頭をそれを確認することができます!この方法で唯一の問題は、認証ライブラリのlogin_user関数に渡す完全なparamsマップが必要なことです。個々の値はそれほど役に立ちません。助言がありますか? –

+0

マップがまだparams変数の中にある場合、コントローラアクション内でparamsから必要な値を取得できます。これはパターンマッチで変数 'params'を使用したためです。 '%{" user "=>%{" email "=>電子メール、" password "=>パスワード}} = params' – coderVishal

+1

Ahh true!ご協力いただきありがとうございます! –

関連する問題