2015-08-01 18 views
6

Jaka jest różnica między używaniem: body-params i: form-params w praktyce podczas tworzenia API za pomocą compojure-api? Na przykład:: body-params vs: form-params w compojure-api

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

vs

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

które należy stosować do API, które będzie konsumowane przez pojedynczej strony clojurescript aplikacji i/lub natywnych aplikacji mobilnych?

Odpowiedz

7

Wiąże się to z obsługiwanych typów zawartości:

  • form-params są przeznaczone do stosowania z Treść typu "Aplikacja/x-www postać urlencoded" (forma)
  • body-params są przeznaczone do wykorzystania dla parametrów, które będą również znajdować się w ciele z innymi typami zawartości (edn, json, tranzyt, itp.).

Będziesz chciał użyć :body-params, aby go pobrać z aplikacji clojurescript lub mobilnych.

Korzystanie z form-params lub body-params wpłynie na sposób sprawdzania poprawności parametrów, z której części żądania zostaną pobrane oraz w jaki sposób zostanie wygenerowany plik swagger.json, jeśli używasz rozszerzeń przeskakujących.

Wiele rzeczy w compojure-api jest trudnych do zrozumienia bez mapowania ich na pojęcia w zachwycie. Looking into the code Znaleźliśmy hasła podobne do "consumes" lub "formData", które można znaleźć w the swagger parameter specs.