2015-08-01 18 views
6

Qual è la differenza tra l'utilizzo di: body-params e: form-param in pratica quando si crea un'API usando compojure-api? Per esempio:: body-params vs: form-params in compojure-api

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

vs

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

Quale deve essere utilizzato per un'API che sta per essere consumato da una singola pagina app ClojureScript e/o applicazioni mobili native?

risposta

7

Ha a che fare con il tipo di contenuto supportato:

  • form-params sono destinati ad essere utilizzati con content-type "application/x-www-form-urlencoded" (una forma)
  • body-params sono destinato a essere utilizzato per i parametri che verranno anche collocati nel corpo con altri tipi di contenuto (edn, json, transit, etc).

Si vorrà utilizzare :body-params per consumarlo dal tuo clojurescript o app mobili.

L'utilizzo di form-params o body-params influenzerà il modo in cui i parametri vengono convalidati, da quale parte della richiesta vengono prelevati e come verrà generato il file swagger.json se si utilizzano le estensioni swagger.

Molte cose in compojure-api sono difficili da capire senza mapparle ai concetti in spavalderia. Looking into the code troviamo termini di swagger come "consumes" o "formData" che possono essere trovati in the swagger parameter specs.

Problemi correlati