O que expo-api-routes faz?
Diretrizes para criar rotas de API no Expo Router com EAS Hosting
Visão Geral
Rotas de API no Expo Router permitem que você defina endpoints de backend diretamente no seu projeto Expo. Elas são executadas como funções serverless no EAS Hosting, simplificando o desenvolvimento full-stack.
Estrutura de Pastas
app/
api/
users/
route.tsx
posts/
[id]/
route.tsx
Criando Rotas
Para criar uma rota de API, adicione um arquivo route.tsx dentro de app/api/. Cada arquivo exporta funções correspondentes aos métodos HTTP:
// app/api/users/route.tsx
export async function GET(request: Request) {
return Response.json({ users: [] });
}
export async function POST(request: Request) {
const body = await request.json();
return Response.json({ created: true });
}
Parâmetros de Rota
Use parâmetros dinâmicos como em rotas do Expo Router:
// app/api/posts/[id]/route.tsx
export async function GET(request: Request, { params }: { params: { id: string } }) {
const { id } = params;
return Response.json({ postId: id });
}
Executando Localmente
npx expo start
As rotas de API estarão disponíveis em http://localhost:8081/api/....
Deploy no EAS Hosting
eas deploy
Tratamento de Erros
- Retorne
Responsecom status HTTP apropriados. - Use bloco
try/catchpara capturar exceções.
export async function GET() {
try {
const data = await fetchData();
return Response.json(data);
} catch (error) {
return new Response('Erro interno', { status: 500 });
}
}
Considerações
- Mantenha as funções puras e sem efeitos colaterais entre requisições.
- Use variáveis de ambiente para dados sensíveis (ex.:
process.env.API_KEY). - Rotas de API são stateless; para persistência, use serviços externos como Supabase ou Firebase.