-
Notifications
You must be signed in to change notification settings - Fork 32
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow URI templates in paths #10
Comments
При добавлении роута чекаем наличие переменных в пути. Если переменные есть, ставим отметку о том, что передан шаблон пути с переменными и разбираем эти переменные. Пример кода для извлечения переменных: if(grepl("/\\{|\\}/", path)) {
splitted <- strsplit(path, "/", fixed = TRUE)[[1L]][-1L]
pos <- which(startsWith(splitted, "{") & endsWith(splitted, "}"))
vars <- substr(splitted[pos], 2L, nchar(splitted[pos]) - 1L)
private$handlers[[path]][[vars]] <- list(name = vars, pos = pos)
} Его предполагается вставить вот сюда. По поводу матчинга путей при поиске подходящего обработчика. После проверки точного совпадения можно сплитнуть путь и сопоставить его с имеющимися, причём при сопоставлении учесть длину вектора и исключить ранее извлечённые переменные. Текущий вариант со |
Нашёл реализацию похожего функционала в пакете |
Plumber related code: https://github.com/trestletech/plumber/blob/master/R/query-string.R |
First try to make structure for the paths: https://gist.github.com/artemklevtsov/a158e6cac89dc43c454552d8a83249fd |
Предложенный выше объект R6 предлагается использовать в
|
Если будет просадка по производительности, то для точного соответствия можно исопльзовать |
Думается надо запилить отдельный
|
Думаю, ответ должен быть такой. Префикс |
#34 should fix it. |
RFC6570 and test suite https://github.com/uri-templates/uritemplate-test/tree/8014d2561706bfec7fd27a7465ff3f957381427c
The text was updated successfully, but these errors were encountered: