博客
面向 agent 的后端

发布于 更新于

Arag 和 Anshu

使用 Claude Code 和 Cohesivity 构建全栈应用:完整实战教程

以 Markdown 阅读

Claude Code 可以结合 Cohesivity 构建并部署一个全栈候补名单应用:创建临时租户,配置 Postgres 和 Railway 托管,添加仅限服务端使用的注册端点,测试重复写入,再上传构建后的应用。认领项目或进入付费环节前,仍然需要用户批准。

本教程选择候补名单应用,是因为它足够小、方便检查,同时又涵盖数据校验、唯一性、服务端凭据、重试和部署。

配置资源前先定义行为

应用需要:

  • 一个电子邮件表单,并清楚显示等待、成功和错误状态;
  • 一个负责校验并规范化邮件地址的服务端端点;
  • 一张带有邮件地址唯一约束的 Postgres 表;
  • 能安全处理重复请求的插入逻辑;
  • 仅限服务端使用的后端凭据;
  • 可部署的应用和公开健康检查。

它不需要社交登录、实时通信、向量存储或模型 API。配置这些服务只会增加工作量,对当前任务没有帮助。

后端资源配置指南解释了下文使用的控制面与数据面分离方式。

先让 Claude 提供方案

在项目中启动 Claude Code,让它识别框架、包管理器、现有测试配置、仅限服务端的环境变量约定、构建输出和部署命令。官方 Claude Code CLI支持面向规划的权限模式和工具限制,因此在检查期间应禁用外部调用。

方案应明确列出要修改的文件和需要的资源。如果 Claude 提议将 Cohesivity 密钥放入 NEXT_PUBLIC_、VITE_ 或浏览器可读取的变量中,应拒绝该方案。

创建隔离租户

如果存在有效的 .cohesivity 文件,Claude 应复用它。否则可以先预览,再执行初始化:

npx @cohesivity/init --dry-run
npx @cohesivity/init

创建的临时租户有效期为 72 小时。该命令还会提供 Claude 所需的项目上下文。不要把生成的密钥粘贴到聊天、日志或源代码中。

读取并配置 Postgres

调用 Postgres 前,Claude 必须获取最新 offering 页面:

curl -sS -A "ClaudeCode-Waitlist/1.0" \
  https://cohesivity.ai/offerings/postgres

获得批准后,Claude 会通过文档约定的管理端点配置 postgres,并使用稳定的幂等键。然后从服务端代码创建 schema:

CREATE TABLE IF NOT EXISTS waitlist_signups (
  id BIGSERIAL PRIMARY KEY,
  email TEXT NOT NULL UNIQUE,
  created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);

唯一约束是防止两个请求插入同一个规范化地址的最后一道防线。应用代码仍应处理冲突并返回已有的注册状态,而不是笼统的 500 错误。

添加服务端端点

处理程序应该:

  1. 解析 JSON,并拒绝缺失或格式错误的地址。
  2. 按照一项有明确文档的规则去除首尾空白并规范化邮件地址。
  3. 使用参数化 PostgreSQL 查询和 $1 占位符。
  4. 为本次逻辑注册操作发送一个幂等键。
  5. 将唯一约束冲突映射为表示记录已存在的成功响应。
  6. 返回精简的公开结构,不包含内部错误或凭据。

浏览器调用应用自己的端点,只有服务端才能调用 Cohesivity。这样可以避免管理密钥和应用密钥进入客户端 bundle。

测试失败路径

至少运行以下四个用例:

用例 预期结果
有效的新邮件地址 一条记录和成功响应
无效的邮件地址 校验响应,不调用数据库
两次使用同一个规范化邮件地址 一条记录和稳定的已存在响应
响应丢失后重试 一个逻辑结果,不产生重复行

还要在构建后的客户端资源中搜索 coh_man_ 和 coh_app_。单元测试通过并不能证明打包工具没有把密钥放进客户端。

应用从公开候补名单扩展到多用户场景后,可以使用第二位用户后端检查增加跨用户和跨租户测试。

通过 Railway 托管完成配置与部署

Claude 获取 https://cohesivity.ai/offerings/railway-hosting,配置相应 offering,再通过 Cohesivity 的 Railway 部署 API 上传应用。它应该使用返回的 Cohesivity deployment_url 和 logs_url,而不应安装 Railway CLI、连接 GitHub 仓库或索取 Railway 凭据。

等待部署和公网路由均已就绪,然后对公开服务器运行健康检查和一次真实注册。仅有提供商的部署状态,并不能证明路由可以正常访问。

清晰地交付结果

Claude 应报告:

  • 公开部署 URL;
  • 执行的测试及其结果;
  • 创建的资源;
  • 租户过期时间;
  • 认领项目所需的操作;
  • 包含服务端环境配置的文件;
  • 用户不保留项目时的清理路径。

下方的提示词覆盖了完整任务,并保留所有审批节点。