Какие символы разрешены для слизняков в нуаре? - PullRequest
1 голос
/ 28 февраля 2012

У меня есть сервис Clojure, который я предоставляю через REST.У меня есть страница, определенная как:

(defpage "/package_versions/:id" {:keys [id]}
  (do
    (println "ID: " id)
    (if-let [pv (pv/fetch-one (db/keyspace) id)]
      (response/json pv)
      (response/status 404 nil))))

Какие символы разрешены для идентификатора?Слизни 1-2-3, 1 | 2 | 3, 1_2_3 все работают, а 1.2.3 - нет.Есть ли способ сделать слизней, которые содержат.Работа?Какие символы разрешены в нуар-маршрутах?Какой код отвечает за это поведение: noir, ring, compojure?

Ответы [ 2 ]

1 голос
/ 29 февраля 2012

Посмотрите на Clout тестовые случаи .

Слага, используемые в тестах, на самом деле не содержат специальных символов, поэтому я не знаю, какие символы являются допустимыми,но в конце файла приведен пример того, как определить настраиваемый сопоставитель маршрутов, который предположительно можно использовать для сопоставления точек, если вы того пожелаете.

Я ожидаю, что вы можете подключить настраиваемый сопоставитель маршрутов к Noirс noir.core/compojure-route или noir.core/custom-handler.

Кроме того, существуют тесты с буквенными точками в них, например, "/foo.:ext, который соответствует URL-адресам, таким как /foo.txt, поэтому я не удивлюсь, если это былфункция, а не ошибка, чтобы не допустить точки в слизняках.

0 голосов
/ 28 февраля 2012

Ответственность за это должна быть clout, которую использует библиотека Compojure.Вы можете взглянуть на wakeful, чтобы увидеть один пример настройки различных сопоставителей, в частности использование route-compile.

...