ДокументацияПонять модель

Маршрутизация

У Nexy два родных роутера. Вы можете выбрать по одному для каждой функции; они могут сосуществовать в одном приложении.

Не уверен? Используйте маршрутизацию на основе файлов. Она охватывает страницы и конечные точки API без какой-либо настройки. Добавьте модульный маршрутизатор, если серверной части нужны контроллеры, внедренные службы или средства защиты.

Вы строите Использование
Страницы, контент, сайт с несколькими конечными точками Файловый
Большой API с сервисами, общими для всех маршрутов. Модульный
И то, и другое: страницы для людей, структурированный API для машин. Файловое и модульное вместе
Файловый маршрутизатор, краткий обзор
src/routes/index.nexy/
src/routes/about.nexy/about
src/routes/blog/index.nexy/blog
src/routes/blog/[slug].nexy/blog/:slug
src/routes/(app)/dashboard.nexy/dashboard
src/routes/api/users.py/api/users(GET, POST, …)
Модульный маршрутизатор, краткий обзор
@Controller() class AppController/
@Controller("/about") class AboutController/about/
@Controller("/api/users") class UserController/api/users/(get, post, …)
@Module() class AppModulelists the controllers
useRouter = AppModule nexyconfig.pymounts the module
Маршрутизатор Источник Включено
На основе файлов (FBR) каждый файл под src/routes/ каталог существует
Модульный контроллеры и модули useRouter = AppModule в nexyconfig.py

FBR сканируется всякий раз, когда существует src/routes/, даже если установлен модульный маршрутизатор.

Сосуществование и приоритеты

Вы можете комбинировать FBR, модульную и пользовательскую интеграцию. Nexy регистрирует эти маршруты в порядке их обнаружения. Если два маршрутизатора определяют один и тот же путь URL-адреса, побеждает первый зарегистрированный.

Примечание. Nexy в настоящее время не обеспечивает диагностику конфликтов URL-адресов; первый маршрут, претендующий на путь, просто затеняет остальные.

Маршрутизация на основе файлов

Маршрут — это файл. URL-адрес — это его путь в src/routes/ без расширения. Как и Next.js, проект находится в одном из двух режимов, выбранных с помощью useCSR:

useCSR = False (по умолчанию) useCSR = True
Страницы .nexy, .md, .mdx файлы вашего клиентского фреймворка
Корневая раскладка layout.nexy layout.tsx (React)
Клиентские компоненты разрешено, так как острова внутри страниц сами страницы
API-маршруты .py .py

См. Режим сервера и режим клиента.

Раздел Что он охватывает
fbr/страницы страницы, динамические маршруты и группы маршрутов
fbr/макеты layout.nexy, layout.tsx, layout.vue, layout.svelte
fbr/обработчики .py обработчики маршрутов, проверка и ошибки
fbr/зависимости dependencies.py и охранники, наследуемые каталогом
fbr/промежуточное ПО middleware.py, наследуется каталогом
fbr/ошибки notfound.nexy, errors.nexy, ошибки JSON
fbr/навигация связывание, навигация по клиенту, крючки
fbr/в реальном времени WebSocket обработчики
fbr/наследование как наследуются макеты, зависимости и страницы ошибок

Модульная маршрутизация

Контроллеры, модули и внедрение зависимостей в стиле NestJS. См. Модульная маршрутизация и Nexy и NestJS.

Раздел Что он охватывает
модульный @Controller, @Module, импорт и экспорт
модульность/внедрение зависимостей @Injectable, области видимости и контейнер
модульные/защитные и метаданные @UseGuard, @UseResponse и метаданные OpenAPI

Контроллер возвращает представление .nexy с помощью useViews и вручную передает его в свой макет: layout.nexy не применяется к папке.

Пользовательская интеграция

Вы также можете интегрировать существующий маршрутизатор FastAPI в свой проект Nexy. См. Интеграция пользовательской маршрутизации.

Следующие шаги

Изменить на GitHub

Enter открывает результат, Esc закрывает.