跳转到内容

API、HTTP 与数据库

当你在网页里点击“保存”,通常会发生:

浏览器 → HTTPS 请求 → API 服务 → 校验身份和数据 → 数据库
浏览器 ← JSON 响应 ← API 服务 ← 保存结果

API 是服务提供给其他程序使用的入口;HTTP 是浏览器和服务交换请求/响应的协议;JSON 是常见的数据表达格式。它们不是同一个东西,但经常一起出现。

  • 方法GET 读取、POST 创建、PATCH 部分修改、DELETE 删除;
  • URL:要访问的资源地址;
  • Headers:认证、内容类型和客户端信息;
  • Body:发送给服务的数据;
  • 状态码:服务对结果的简短说明。

一个请求失败时,先看状态码和响应正文,不要只凭浏览器上“网络错误”四个字猜原因。

API Key 是服务识别调用者的一种凭证;登录会话通常还包括用户身份、过期时间和权限。两者都不应该暴露在公开前端代码、URL、截图或日志中。

前端可以隐藏按钮,但不能作为最终权限控制。后端每次访问数据都要再次判断“谁在访问、能访问什么、要执行什么动作”。

数据库用于保存应用的结构化数据和查询关系。新手常见的两类:

  • 关系型数据库:用表、行、列和关系组织数据,适合一致性和复杂查询;
  • 文档/键值数据库:以文档或键值保存数据,结构更灵活,但仍需设计查询和权限。

选数据库前先画出数据对象、字段、关系、唯一性、删除规则和访问角色。不要把“使用某种数据库”当成需求本身。

{
"title": "第一次会话",
"status": "draft",
"ownerId": "user_123"
}

JSON 只是传输格式,不会自动保证字段正确。服务端仍需验证类型、长度、枚举值和权限。

  1. 请求是否发到了正确的 URL 和环境?
  2. 浏览器 Network 中的方法、状态码和响应是什么?
  3. API 服务日志是否收到请求?
  4. 环境变量、Key、数据库连接是否存在?
  5. 数据库迁移和当前表结构是否一致?
  6. 失败后是否重复写入或留下半成品数据?