Я пытаюсь разрешить два типа использования для API: либо предоставлять запрос как часть URI, либо предоставлять его в качестве параметра.Спрей: запрос как часть URI или параметр
Endpoints/search/myQuery
эквивалентно /search?query=myQuery
как должен возвращать один и тот же результат.
Код
вот implmentation настоящее время я использую. Однако он чувствует себя немного шире, так как много кода необходимо повторить.
path("search") {
parameter('query) { term =>
get {
complete { performSearch(term) }
}
} ~
path("search"/Segment) { searchTerm =>
get {
complete { performSearch(term) }
}
}
Вопрос
Есть ли более DRY способ выразить это поведение в спрей?
Спасибо большое :) Я пробовал, как вы описали до allready, но без параметра parens '(path (Сегмент) | (поиск))' он не будет компилироваться. ' –
Это тип, поэтому, если типы разные, он не будет компилироваться. Например, 'get' имеет тип' Directive0' и 'parameter ('search)' имеет тип 'Directive1 [String]' so 'get | параметр («поиск») не будет компилироваться. –
Ссылка на страницу «Пользовательская директива» возвращается 404 :( –