3

compojure-api で、リソースの API を指定する次の 2 つの方法に気付きました。

(POST* "/register" []
    :body [user UserRegistration]
    (ok)))

(POST* "/register" []
    :body-params [username :- String,
                  password :- String]
    (ok)))

これら2つの違いは何ですか?一方と他方を使用することの意味は何ですか?

4

1 に答える 1

5

唯一の違いは、params の指定方法 (およびその後の構造解除方法) です。

body:

body-params を Enhanced に読み込みますlet。最初のパラメータはlet シンボルで、2 番目は対象となるスキーマcoerced!です。

例: :body [user User]

body-params:

letk配管記法で body-params を再構築します。

例::body-params [id :- Long name :- String]

状況に応じて、どちらかを好む場合があります。どちらの場合も、パラメーター (user最初のケースidname2 番目のケース) は本体のスコープ内になります。

于 2015-08-01T23:26:11.163 に答える