路由与端点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