Необязательные аргументы в compojure-api/schema/swagger?

Когда у меня есть такое определение API:

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

каков правильный способ сделать имя необязательным? Это:

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

person pupeno    schedule 01.08.2015    source источник


Ответы (1)


Как вы знаете, он использует сантехнику letk, и, насколько я помню, синтаксис правильный, но значение по умолчанию должно соответствовать ожидаемому типу, поэтому я бы сказал, что это должно быть "", а не nil, поскольку (string? nil) => false

(POST* "/register" []
    :body-params [username :- String,
                  password :- String,
                  {name :- String ""}]
    (ok)))
person Jaime Agudo    schedule 03.08.2015
comment
Где это задокументировано? Я нашел это только сейчас, через несколько месяцев после использования Compojure. - person Petrus Theron; 17.08.2016