2026/1/11 16:24:09
网站建设
项目流程
做网站必须要注册公司么,网约车app开发,做网站个人备案,seo服务商找行者seoRESTful API 中的 URL 设计规范#xff08;最佳实践#xff09;
URL#xff08;Uniform Resource Identifier#xff09;是 RESTful API 的核心入口#xff0c;良好的 URL 设计能让 API 直观、可预测、易维护。以下是业界广泛认可的 URL 设计规范和最佳实践。
1. 核心原…RESTful API 中的 URL 设计规范最佳实践URLUniform Resource Identifier是 RESTful API 的核心入口良好的 URL 设计能让 API直观、可预测、易维护。以下是业界广泛认可的 URL 设计规范和最佳实践。1. 核心原则总结口诀“资源用名词、复数形式、层级清晰、动词靠方法、版本要明确、查询用参数”2. 详细规范表规范类别推荐做法示例不推荐示例原因说明资源命名使用名词表示资源避免动词/users、/articles/getUsers、/createArticle动词应由 HTTP 方法表达复数 vs 单数统一使用复数形式业界主流约定/users、/orders/user、/order更一致便于集合和单个资源统一处理层级结构用路径表示资源的从属关系嵌套不超过 2-3 层/users/123/orders/getUserOrders?id123更直观体现资源层次子资源操作子资源用嵌套路径/articles/123/comments/comments?articleId123更 RESTful可选视场景动作非资源时如果是动作而非资源用动词放在路径末尾谨慎使用/orders/123/cancel大多数情况应转为资源设计只在无法建模为资源时使用版本控制在 URL 中显式指定版本最常见方式/v1/users、/api/v2/articles无版本或只用 Header更直观便于文档和客户端切换大小写与分隔符全小写用连字符 -分隔kebab-case/blog-posts、/user-profiles/blogPostscamelCaseURL 区分大小写小写更安全、可读性更好文件扩展名避免在 URL 中使用 .json、.xml 等扩展名/users/123/users/123.json内容协商用 Accept Header 处理ID 命名用{id}占位符文档中实际用具体 ID/users/{id}文档/users/123实际/users/userId123更简洁查询参数用于过滤、排序、分页、搜索等/articles?tagrestpage2limit20sortcreated_at:desc把参数放路径查询参数专为此设计避免过深嵌套嵌套不超过 3 层过多时用查询参数或扁平化/users/123/orders/456/items可接受嵌套 5 层以上过深 URL 复杂、不易维护3. 常见操作的 URL 示例用户 文章 评论操作推荐 URLHTTP 方法说明获取用户列表GET /usersGET支持查询参数过滤获取单个用户GET /users/123GET创建用户POST /usersPOST更新用户全量PUT /users/123PUT部分更新用户PATCH /users/123PATCH删除用户DELETE /users/123DELETE获取用户的所有订单GET /users/123/ordersGET嵌套子资源获取某篇文章的所有评论GET /articles/456/commentsGET为文章添加评论POST /articles/456/commentsPOST搜索文章GET /articles/search?qrestfulGET或直接用/articles?qrestful获取当前登录用户信息GET /me或GET /users/meGET常见特殊路径4. 特殊场景处理建议场景推荐设计方式示例分页用查询参数page和limit或offset和limit/articles?page3limit20排序用sort参数支持字段方向/users?sort-created_at,name过滤用查询参数直接字段名或特定前缀/orders?statuspaidmin_amount100批量操作单独路径非标准 REST但实用POST /users/batch-deleteBody: [1,2,3]文件上传用资源路径 multipart/form-dataPOST /users/123/avatar触发动作如支付优先建模为资源如创建支付订单否则用动词路径POST /orders/123/pay谨慎使用5. 常见反模式避免把 HTTP 方法放进 URL/users/getAll、/users/addUser混用单复数项目中既有/user又有/articles过长 URL嵌套太多层或参数太多用查询参数做主要操作GET /users?actiondeleteid123应为 DELETE无版本控制导致旧客户端无法兼容6. 总结优秀的 URL 设计应该做到一眼看出资源和关系无需文档也能猜到大部分接口前后一致、易于扩展遵循以上规范你的 RESTful API 将更专业、更易被开发者接受和使用。如果你想看具体框架如 Express、Spring Boot、FastAPI的路由实现示例或者某个复杂场景的 URL 设计讨论随时告诉我