Appearance
如何在 Expo Router 中构建高效的 API Routes 服务端路由
解决移动端直接调用第三方 API 导致密钥泄露的问题,通过在 Expo Router 中建立 +api.ts 服务端路由,实现安全的数据处理与 API 代理。
为什么需要这个技能
在传统的 React Native 开发中,如果直接在客户端调用外部 API(如 OpenAI 或 Stripe),API Key 必须写在前端代码中,这会导致严重的安全漏洞。
通过 Expo Router 的 API Routes,你可以创建运行在服务端的端点。这意味着敏感的 API 密钥、数据库凭证可以安全地存储在环境变量中,且复杂的计算逻辑或数据库查询可以在服务端完成,从而减轻移动端的性能压力并增强安全性。
适用场景
- 保护敏感密钥:需要调用需要 API Key 的第三方服务时。
- 数据库直接操作:需要执行不便在客户端暴露的数据库查询。
- API 代理与验证:在请求到达第三方服务前进行预处理或数据校验。
- Webhook 接收:接收来自 Stripe 或 GitHub 的异步回调。
- 高性能计算:将耗时较长的逻辑从移动端移至服务端。
核心工作流
1. 定义文件结构
API 路由必须位于 app 目录下,且文件名以 +api.ts 结尾。
app/api/hello+api.ts映射为/api/helloapp/api/users/[id]+api.ts映射为动态路由/api/users/:id
2. 实现 HTTP 方法
在文件中导出与 HTTP 方法同名的函数(如 GET, POST, PUT, DELETE):
ts
// app/api/items+api.ts
export async function POST(request: Request) {
const body = await request.json();
return Response.json({ created: body }, { status: 201 });
}3. 管理环境变量与部署
- 本地开发:使用
.env文件存储密钥,通过npx expo serve启动。 - 生产部署:使用
eas deploy将路由部署至 EAS Hosting(基于 Cloudflare Workers)。 - 配置密钥:通过
eas env:create在云端配置生产环境的 API Key。
4. 注意运行时限制
由于 API Routes 运行在 Cloudflare Workers 环境中,需注意:
- 不支持 Node.js 的
fs文件系统模块。 - 需使用 Web 标准 API(如
fetch代替node-fetch)。 - 建议连接云端数据库(如 Turso, Supabase, Neon)。
下载和安装
下载 expo-api-routes 中文版 Skill ZIP
解压后将目录放入你的 AI 工具 skills 文件夹,重启工具后即可使用。具体路径参考内附的 USAGE.zh.md。
你可能还需要
暂无推荐