Мы пытаемся предоставить чистую структуру URI для внешних конечных точек, чтобы получать информацию json из CQ5.
Например, если вы хотите получить информацию о конкретной истории пользователей (при условии, что у вас есть разрешения и т. д.), в идеале мы хотели бы, чтобы конечная точка могла делать следующее:
/bin/api/пользователь/abc123/телефон/555-клондайк-5/history.json
В URI мы бы указали /bin/api/user/{username}/phone/{phoneNumber}/history.json, чтобы очень легко использовать диспетчер для аннулирования изменений кэширования и т. д. без аннулирования большого количества кэшированной информации. .
Мы хотели бы использовать sling-сервлет для обработки запроса, однако я не знаю, как поместить переменные в путь.
Было бы здорово, если бы было что-то вроде @PathParam от JaxRS для добавления к переменной пути sling, но я подозреваю, что это недоступно.
Другой подход, который мы имели в виду, заключался в использовании селектора для распознавания, когда мы обращаемся к API, и, таким образом, могли бы вернуть все, что мы хотели, из пути, но это потребовало бы отдельного сервлета sling для обработки всех запросов, и поэтому Я недоволен этим подходом, так как он склеивает воедино много несвязанного кода.
Любая помощь в этом будет оценена по достоинству.
ОБНОВИТЬ:
Если бы мы использовали OptingServlet, а затем поместили бы некоторую логику в функцию accepts, мы могли бы сложить ряд sling-сервлетов и принять решения о принятии из пути с регулярным выражением.
Затем во время выполнения сам путь может быть проанализирован на наличие переменных.