切换·Esc 返回

路由与端点Route & Endpoint

后端入门
根据请求的网址和方式,决定运行哪一段后端代码

路由用 HTTP 方法和网址路径决定运行哪段代码,例如 GET /api/posts 读取文章,POST /api/posts 创建文章。每条端点都要说明输入、成功结果和失败结果。

GET/api/posts
POST/api/posts
GET/api/posts/:id

什么时候用

  • 方法 + 名词路径表达意图:GET /users、POST /users
    方法说明动作,路径说明对象
    读取用户GET /users创建用户POST /users
  • 把路径参数、查询参数和请求体分清楚
    三种参数放在不同位置
    路径/users/42查询?tab=orders请求体{ "name": "小林" }
  • 每条端点写清输入、成功响应、错误状态和权限要求
    一条端点要写清四件事
    输入email成功201失败400 / 409权限需登录
  • 先用浏览器 Network、curl 或 API 工具单独验证端点
    先单独验证接口
    curl -X POST /api/orders201 Created{ "orderId": "o_42" }

什么时候不用

  • 不要把所有功能放进一个含义不清的通用端点
    一个端点包办一切
    POST /api/doEverything{ "action": "maybe-save-or-delete" }
    地址看不出它会读取、修改还是删除
  • 读取数据却用 POST、删除数据却用 GET:语义和缓存都会混乱
    方法和动作相反
    删除GET /delete/42读取POST /getUser
  • 只写成功情况:数据库失败或参数缺失时页面直接白屏
    只设计成功分支
    200 成功500 失败页面白屏
    参数缺失和服务失败也要有明确响应
  • 把密码、令牌等敏感信息放在 URL 查询参数里:它们可能进入浏览历史和访问日志
    敏感信息出现在网址里
    GET /report?api_key=sk-live-••••浏览历史 · 访问日志 · 分享截图
组成结构 · Anatomy
GET/api/posts?page=2
1方法MethodGET 读取、POST 创建、PATCH 修改、DELETE 删除
2路径Path资源地址,最好使用名词并保持复数规则一致
3查询参数Query用于筛选、搜索、排序和分页,不应该包含密码或令牌
典型使用场景
GET /api/posts 取列表
文章列表GET /api/posts
请求参数?page=2&tag=design 响应200 · 20 篇文章
POST /api/login 提交登录
提交登录POST /api/login
登录
请求体携带账号信息,成功后建立会话
GET /api/users/:id 取详情
用户详情GET /api/users/:id
路径参数id = u_23姓名林小狐角色editor
DELETE /api/tasks/:id 删除任务
删除任务DELETE /api/tasks/:id
任务整理首页文案删除后不可恢复
确认删除
先确认,再请求 DELETE /api/tasks/t_42