我在喝咖啡前尝试构建后端的那一天
有没有试过在周一早上搭建后端,结果发现你的 API 网关正在休假,返回 403 Forbidden,而你的数据库则有提交问题?我曾经就遇到过。我想要一个非常小的端点——一个友好的 /hello——但不知怎么的,我最终像挑选 Hogwarts 学院一样争论 VPC。
好消息是:Lovable Cloud 正在努力让“构建后端”这件事变得……嗯……更可爱。或者至少不那么令人愤怒。如果你有 30 分钟、一个 Wi‑Fi 连接,并且能容忍一些比喻,我将带你一步一步地了解如何使用 Lovable Cloud 构建后端,需要注意什么,以及如何防止它变成一个端点的意大利面条。
注意:这是一个实用的、动手操作的指南。少一些供应商的华丽辞藻,多一些“点击这里,输入这个,不要这样做”。是的,我们将发布一些真正的东西:一个具有身份验证、数据库、环境变量、部署、监控以及快速扩展路径的可用 API。拿点零食。我们要开始了。
什么是 Lovable Cloud,为什么你的后端应该关心它?
将 Lovable Cloud 视为现代后端瑞士军刀:无服务器函数、API 路由、数据库连接、环境变量和 CI/CD——所有这些都是为了让你免于维护一个布满灰尘的 YAML 文件动物园。
- 你编写代码(Node/TypeScript、Python——查看文档了解最新情况)。
- 你定义路由 (REST)。如果你喜欢花哨的,你可以使用 GraphQL 或坚持使用 JSON。
- 你连接一个托管数据库(PostgreSQL 通常是这里最受欢迎的)。
- 你部署。它可以扩展。你不再需要担心凌晨 3 点醒来添加更多服务器。
如果你的“后端”心理模型是:端点 + 身份验证 + 数据 + 部署 + 日志,那么 Lovable Cloud 试图成为一条快捷通道,减少嘟嘟声,增加收据。
使用 Lovable Cloud 构建后端的行动计划
- 创建一个 Lovable Cloud 项目和 repo。
- 搭建一个 API,其中包含一个公共路由和一个受保护路由。
- 添加一个 PostgreSQL 数据库并运行迁移。
- 添加身份验证(JWT、会话令牌或 OAuth——你来决定)。
是的,听起来很多。不,不会花一整个星期。
第 1 步:启动你的 Lovable Cloud 项目(又名新项目的味道)
- 创建一个帐户并启动一个新项目。给它起一个你以后能认出来的名字——“not_final_backend_v7”是一个陷阱。
- 选择你的运行时(Node/TypeScript 是 API 的常用选择)。
- 如果有模板,请选择一个:“REST API”或“Serverless Functions”可以让你比空白页面更快地进入状态。
你将获得一个 Git repo(你自己的或他们的)和一个开发环境。如果你立即创建一个分支(“feature/hello-api”),那么你的主分支就不会成为一个活生生的错误博物馆,那么你可以获得额外的积分。
第 2 步:搭建你的第一个端点(因为 Hello World 仍然很棒)
创建一个基本路由:/api/hello。保持简单和快乐。
- 函数:返回像
{ message: "Hello, world" } 这样的 JSON
- 在本地测试:cURL 或你最喜欢的 HTTP 客户端。如果你没有得到 200,请重新检查你的步骤并查看日志。
专业提示:保持你的路由处理程序简洁——端点内没有业务逻辑。将逻辑放在服务中。你未来的重构会感谢你。
第 3 步:添加一个数据库,而无需召唤古老的 DevOps 精灵
选择 PostgreSQL。它可靠、关系型,并且不对连接过敏。
- 在 Lovable Cloud 中,创建一个托管的 Postgres 实例。
- 将凭据存储为环境变量:
DATABASE_URL、DB_USER、DB_PASS、DB_HOST、DB_NAME。
- 选择一个 ORM 或查询构建器(Prisma、Drizzle、Knex)。我偏爱 Prisma,因为它速度快且模式健全。
创建一个小的 users 表来证明它有效:
- 模式:
id (uuid)、email (unique)、created_at (timestamp)。
- 编写一个
GET /api/users 端点,该端点返回一个列表。添加一个 POST /api/users 来插入一个新的用户。用身份验证(下一步)保护它,但现在,用一个测试插入来验证。
如果你看到超时或连接重置,请检查:正确的端口、SSL 模式以及是否允许你的开发环境与数据库对话(VPC 规则和 IP 允许列表喜欢戏剧性)。
第 4 步:添加不会让用户哭泣的身份验证
你有以下选择:
- 带有安全 cookie 的会话令牌(非常适合 Web 应用程序)
- 与 Google、GitHub 等的 OAuth(非常适合避免密码炼狱)
为了快速获胜,从 JWT 开始:
- 在登录时生成令牌(
POST /api/auth/login)。
- 将签名密钥存储在 Lovable Cloud 的密钥管理器中。
- 创建一个中间件,该中间件读取
Authorization: Bearer <token> 标头。
- 保护像
POST /api/users 这样的路由以及任何改变数据的路由。
记住:较短的令牌生存期 + 刷新令牌 = 当设备丢失或开发人员忘记将令牌留在 YouTube 评论中时,减少麻烦(别问)。
第 5 步:环境变量:秘密,而不是纪念品
使用 Lovable Cloud 的环境管理器集中管理密钥:
为每个环境(开发、暂存、生产)设置它们。不要硬编码任何东西。不要。即使是“暂时”。这就是恐怖故事的开始方式。
第 6 步:部署到暂存环境,而无需向你未来的治疗师解释
单击“部署”。观看日志。呼吸。
- 验证运行状况检查:你的根目录或
/api/health 是否返回 ok?
- 运行冒烟测试:
GET /api/hello、GET /api/users。
- 尝试一个带有测试令牌的受保护路由——确认没有它时返回 401,有它时返回 200。
如果冷启动很慢,请在有意义的地方将小型函数批量处理到单个服务中。无服务器很棒,但 400 个小函数可能是一个没有指挥的管弦乐队。
第 7 步:添加监控,这样你就不会在凌晨 2 点猜测
- 添加延迟仪表板。观看 p95,而不仅仅是 p50。你的用户不会体验平均值。
每一层中带有请求 ID 的单行日志价值 10,000 条以“有人看到这个吗?”开头的 Slack 消息。
第 8 步:编写一个测试。然后两个。然后自动化。
从小处开始:
- 集成测试:使用测试 DB 调用
/api/users。
连接 CI 以在拉取请求上运行测试。没有带有红色测试的 PR 合并。你今天不需要一千个测试——只需要关键路径。就像安全带一样。
第 9 步:升级到生产环境(是的,小心地)
- 如果你缓存,请设置合理的 TTL。如果你不缓存,请准备好让你的数据库用疲惫的眼神看着你。
添加回滚计划:拥有一个回滚计划并不会带来厄运。你只是一个成年人。
一个简单的、真实的后端,你可以在一个下午内发布
让我们连接一个小的——但真实的——功能集:
- 公共
GET /api/hello(运行状况和健全性)。
- 受保护的
POST /api/users(创建用户)和 GET /api/me(返回已验证的用户)。
GET /api/users/:id 用于直接查找。
- 软删除:
DELETE /api/users/:id 切换 deleted_at。
将速率限制添加到 /api/auth/login,这样机器人就不会将你的后端用作有氧运动。
然后通过你的电子邮件提供商添加一封欢迎电子邮件。保持消息的事务性和友好性——将营销活动留给实际的营销路线。
使用 Lovable Cloud 构建后端时的常见陷阱
- 无服务器中的共享状态:不要依赖调用之间的内存缓存。使用 Redis(托管)或你的数据库。
- 缺少 CORS 配置:设置允许的来源。限制为你的应用程序的域。不要在生产中使用完整的通配符。
- 长时间的冷启动:巧妙地捆绑依赖项,减少每个函数的不必要内容,或整合热路径。
- 未编制索引的查询:如果你的
GET /api/users 爬网,请在 email 和 created_at 上添加索引。你未来的自己会感谢你。
- 静默失败:始终记录带有上下文的错误。“出了问题”不是 DevOps 诗歌。
如何构建代码,这样你以后就不会哭泣
repositories/ 或 db/ 用于数据访问
middlewares/ 用于身份验证、速率限制、输入验证
lib/ 用于帮助程序(电子邮件、加密、第三方 API)
尽可能保持函数的纯粹性。将副作用放在边缘。这使得测试变得容易,并且调试起来不像犯罪节目。
真正重要的性能调整
- 在任何列表端点上使用分页。如果你的数据集很大,请使用基于游标的分页。
- 添加 ETags 或上次修改的标头,以避免在每次请求时重新发送整个世界。
- 尽可能批量写入。N+1 查询是后端错误的闪光点——它们无处不在。
你不能忽略的安全基础知识(即使你想忽略)
- 验证每个路由上的输入。JSON 模式或验证库可以防止意外攻击。
- 使用 Argon2 或 bcrypt 哈希密码。永远不要自己编写加密代码。永远。拜托。
- 使用最小特权数据库角色。你的 API 不需要超级用户权限——没有人需要。
定价现实检查:计划增长,而不是心痛
无服务器感觉是免费的……直到它不是。监控:
设置预算和警报。如果你的 CFO 用火焰表情符号给你发短信,那就太晚了。
何时需要文档、示例和健全性检查
我信奉两个真理:你会忘记你是如何配置某些东西的,并且你需要在晚上 11 点再次设置它。在你的 repo 中保留一个 README,其中包含:
让三个月后的新你——或下周的实际新队友——感到友好。
值得注意的是:研究和代码审查的捷径
值得注意的是:如果你想获得关于架构选择的第二意见,或者快速比较最佳实践,Sider.AI 可以像一个毫不废话的队友一样,审查你的计划,指出奇怪的边缘情况,并在你发布之前向你提供一个清单。它不会为你点击“部署”——但它会帮助你避免“哦不”的 Slack 线程。 快速参考:你的 Lovable Cloud 后端清单
将此粘贴到你的显示器上。或纹身。(请不要纹身。)
总结:通过使其变得无聊(以一种好的方式)来使其变得可爱
一个可爱的后端是一个在你睡觉时默默地完成其工作的后端。使用无聊的、经过验证的组件构建:HTTP 端点、干净的身份验证、一个坚固的数据库和明智的部署。Lovable Cloud 通过消除搭建方面的麻烦来提供帮助,因此你可以专注于重要的部分——你的产品、你的用户,甚至是你跳过的咖啡。
发布 /hello。添加 /users。拧紧螺丝。然后去做任何其他事情,而你的后端则在嗡嗡作响。这不仅可爱——而且是生活。
迷你问答:真实场景
我可以在同一个项目上混合使用公共 API 和私有 API 吗?
可以。使用中间件来限制私有路由,并为机器对机器流量分离令牌/密钥。保持范围的严格性。
如果我需要后台作业怎么办?
为长时间运行的工作(电子邮件、报告、同步)启动计划或队列驱动的函数。不要阻止用户请求发送新闻通讯。
我如何防止暂存环境和生产环境像青少年一样交换密钥?
分离环境。分离密钥。CI 中的保护措施,因此暂存凭据永远不会偷偷进入生产构建。
我可以从简单开始,然后在以后全面采用微服务吗?
绝对可以。首先采用整体式方法以提高速度。当你的指标说“现在”时提取热点,而不是当播客说“微服务很酷”时。
后续步骤:你的 30 分钟计划
- 10 分钟:构建
/api/hello,连接数据库,运行迁移
- 10 分钟:添加 JWT 身份验证,保护
POST /api/users
就是这样。你刚刚使用 Lovable Cloud 构建了一个后端。它可以工作。它可以扩展。你仍然有时间重新加热你的咖啡。
常见问题解答
Q1: Lovable Cloud 适合构建后端的初学者吗?
是的——它的模板、无服务器函数和环境管理器使第一个后端不再那么可怕。从一个简单的 REST API 开始,添加一个数据库,然后添加身份验证。你将学习真正的模式,而无需与数据中心作斗争。
Q2: 如何保护我的 Lovable Cloud 后端以用于生产?
使用 JWT 或 OAuth,锁定 CORS,并将密钥存储在环境管理器中。添加速率限制,验证每个路由上的输入,并监控 p95 延迟,以便在用户发现问题之前发现问题。
Q3: 哪个数据库最适合与 Lovable Cloud 配合使用以用于 REST API?
PostgreSQL 是大多数应用程序的可靠选择,尤其是使用像 Prisma 或 Drizzle 这样的 ORM。它可以处理关系数据、事务和索引,而不会出现问题,并且可以随着流量的增长而扩展。
Q4: 如何处理无服务器后端上的冷启动和性能?
巧妙地捆绑依赖项,预热关键路径,并在一个服务可以满足需求时避免使用数百个小函数。添加缓存和分页,并观看 p95 延迟以调整真正重要的内容。
Q5: 我可以部署具有单独密钥和 URL 的暂存环境和生产环境吗?
当然可以。创建单独的环境,设置不同的 DATABASE_URL、JWT_SECRET 和域,并向前升级构建。它可以确保测试安全,并使回滚变得轻松。