UNPKG

@izzyjs/route

Version:

Use your AdonisJs routes in your Inertia.js application

113 lines (112 loc) 4.7 kB
/** * Exemplo de uso da funcionalidade de URLs completas * * Quando você configura baseUrl na configuração, as rotas automaticamente * geram URLs completas com protocolo + domínio + path */ // Exemplo 1: Configuração básica // config/izzyjs.ts // export default defineConfig({ // baseUrl: 'https://meuapp.com', // routes: { ... } // }) // Exemplo 2: Uso das rotas export function exemploUsoRotas() { // Rota simples - retorna apenas o path // const homeRoute = route('home') // console.log(homeRoute.path) // "/" // console.log(homeRoute.url) // "https://meuapp.com/" // Rota com parâmetros // const userRoute = route('users.show', { params: { id: '123' } }) // console.log(userRoute.path) // "/users/123" // console.log(userRoute.url) // "https://meuapp.com/users/123" // Rota com query string // const postsRoute = route('posts.index', { // qs: { page: '2', category: 'tech' } // }) // console.log(postsRoute.path) // "/posts?page=2&category=tech" // console.log(postsRoute.url) // "https://meuapp.com/posts?page=2&category=tech" // Rota com prefixo // const apiRoute = route('api.v1.users.index', { prefix: '/v1' }) // console.log(apiRoute.path) // "/v1/api/v1/users" // console.log(apiRoute.url) // "https://meuapp.com/v1/api/v1/users" } // Exemplo 3: Diferentes tipos de baseUrl export function exemplosDiferentesBaseUrls() { // Com HTTPS // baseUrl: 'https://api.meuapp.com' // route('users.index').url => "https://api.meuapp.com/users" // Com HTTP (desenvolvimento) // baseUrl: 'http://localhost:3333' // route('users.index').url => "http://localhost:3333/users" // Com subdomínio // baseUrl: 'https://admin.meuapp.com' // route('dashboard').url => "https://admin.meuapp.com/dashboard" // Com porta // baseUrl: 'http://localhost:8080' // route('home').url => "http://localhost:8080/" } // Exemplo 3.1: Diferentes domains nas rotas export function exemplosDiferentesDomains() { // Quando você tem rotas com domains diferentes de 'root' // O sistema usa o domain específico da rota em vez do baseUrl.host // Rota com domain 'root' (usa baseUrl.host) // route('home').url => "https://example.com/" // Rota com domain específico 'api.example.com' // route('api.users.index').url => "https://api.example.com/users" // Rota com domain específico 'admin.example.com' // route('admin.dashboard').url => "https://admin.example.com/dashboard" // Rota com domain específico 'cdn.example.com' // route('cdn.assets').url => "https://cdn.example.com/assets" } // Exemplo 4: Uso em diferentes contextos export function exemplosContextos() { // Em componentes React/Vue // const link = route('posts.show', { params: { id: '456' } }).url // Resultado: "https://meuapp.com/posts/456" // Em emails // const emailLink = route('password.reset', { // params: { token: 'abc123' } // }).url // Resultado: "https://meuapp.com/password/reset/abc123" // Em APIs externas // const webhookUrl = route('webhook.stripe').url // Resultado: "https://meuapp.com/webhook/stripe" // Em notificações push // const notificationUrl = route('notifications.show', { // params: { id: '789' } // }).url // Resultado: "https://meuapp.com/notifications/789" } // Exemplo 5: Fallback para configuração inválida export function exemploFallback() { // Se baseUrl for inválido ou não configurado // route('home').url retorna apenas o path "/" // Se baseUrl for "invalid-url" // route('home').url retorna apenas o path "/" (com warning no console) // Se baseUrl for undefined // route('home').url retorna apenas o path "/" } // Exemplo 6: Uso em testes export function exemplosTestes() { // Em testes, você pode configurar diferentes baseUrls // para diferentes ambientes // Teste local // baseUrl: 'http://localhost:3333' // Teste de staging // baseUrl: 'https://staging.meuapp.com' // Teste de produção // baseUrl: 'https://meuapp.com' } // Exemplo 7: Integração com outras bibliotecas export function exemplosIntegracao() { // Com Axios para requisições HTTP // const apiUrl = route('api.v1.users.index').url // axios.get(apiUrl) // Com fetch API // const response = await fetch(route('api.v1.users.index').url) // Com window.open para abrir em nova aba // window.open(route('posts.show', { params: { id: '123' } }).url) // Com window.location para redirecionamento // window.location.href = route('dashboard').url }