2016-03-13 2 views
3

В CQ, если я запрашиваю ресурс, такой как localhost:4502/content/geometrixx/en.json, я бы получил информацию о узле в формате JSON. То же самое относится и к расширению XML.
Мой вопрос: где реализовано, что информация узла отображается в формате JSON, если расширение URL: json? В основном расширение - это просто текст и другая часть структуры URL. Просто добавление json не будет получать магическую информацию в формате JSON.
Очевидно, что нужно было бы использовать эту информацию для написания логики для возврата информации о узле в JSON.Как AEM разрешает расширение JSON?

Я пытаюсь узнать о внутренних функциях CQ. Может быть, концепция получения JSON одинакова в Apache Sling? Я не знаю, является ли это CQ конкретным или нет, но точка такая же. Я тоже пробовал /system/console/jcrresolver, но это не помогло.

ответ

6

Это функция Apache Sling. DefaultGetServlet вызывается во всех запросах GET. Сервлет проверяет расширение запроса и использует соответствующий рендерер, если он включен.

Посмотрите в коде DefaultGetServlet и, а также рендереров в этом directory, таких как HTML renderer, JSON renderer и XML renderer.

Документация находится здесь: https://sling.apache.org/documentation/bundles/rendering-content-default-get-servlets.html

Смежные вопросы