Restful规范
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | # 10条规范 1 数据的安全保障:url链接一般都采用https协议进行传输 注:采用https协议,可以提高数据交互过程中的安全性 2 接口特征表现,一看就知道是个api接口 - 用api关键字标识接口url: - [https: / / api.baidu.com](https: / / api.baidu.com / ) - https: / / www.baidu.com / api 注:看到api字眼,就代表该请求url链接是完成前后台数据交互的 - 路飞的接口:https: / / api.luffycity.com / api / v1 / course / free / 3 多数据版本共存 - 在url链接中标识数据版本 - https: / / api.baidu.com / v1 - https: / / api.baidu.com / v2 注:url链接中的v1、v2就是不同数据版本的体现(只有在一种数据资源有多版本情况下) 4 数据即是资源,均使用名词(可复数) - 接口一般都是完成前后台数据的交互,交互的数据我们称之为资源 - https: / / api.baidu.com / users - https: / / api.baidu.com / books - https: / / api.baidu.com / book 注:一般提倡用资源的复数形式,在url链接中奖励不要出现操作资源的动词,错误示范:https: / / api.baidu.com / delete - user - 特殊的接口可以出现动词,因为这些接口一般没有一个明确的资源,或是动词就是接口的核心含义 - https: / / api.baidu.com / place / search - https: / / api.baidu.com / login 5 资源操作由请求方式决定(method) - 操作资源一般都会涉及到增删改查,我们提供请求方式来标识增删改查动作 - https: / / api.baidu.com / books - get请求:获取所有书 - https: / / api.baidu.com / books / 1 - get请求:获取主键为 1 的书 - https: / / api.baidu.com / books - post请求:新增一本书书 - https: / / api.baidu.com / books / 1 - put请求:整体修改主键为 1 的书 - https: / / api.baidu.com / books / 1 - patch请求:局部修改主键为 1 的书 - https: / / api.baidu.com / books / 1 - delete请求:删除主键为 1 的书 6 过滤,通过在url上传参的形式传递搜索条件 - https: / / api.example.com / v1 / zoos?limit = 10 :指定返回记录的数量 - https: / / api.example.com / v1 / zoos?offset = 10 :指定返回记录的开始位置 - https: / / api.example.com / v1 / zoos?page = 2 &per_page = 100 :指定第几页,以及每页的记录数 - https: / / api.example.com / v1 / zoos?sortby = name&order = asc:指定返回结果按照哪个属性排序,以及排序顺序 - https: / / api.example.com / v1 / zoos?animal_type_id = 1 :指定筛选条件 7 响应状态码 7.1 正常响应 - 响应状态码 2xx - 200 :常规请求 - 201 :创建成功 7.2 重定向响应 - 响应状态码 3xx - 301 :永久重定向 - 302 :暂时重定向 7.3 客户端异常 - 响应状态码 4xx - 403 :请求无权限 - 404 :请求路径不存在 - 405 :请求方法不存在 7.4 服务器异常 - 响应状态码 5xx - 500 :服务器异常 8 错误处理,应返回错误信息,error当做key { error: "无权限操作" } 9 返回结果,针对不同操作,服务器向用户返回的结果应该符合以下规范 GET / collection:返回资源对象的列表(数组) GET / collection / resource:返回单个资源对象 POST / collection:返回新生成的资源对象 PUT / collection / resource:返回完整的资源对象 PATCH / collection / resource:返回完整的资源对象 DELETE / collection / resource:返回一个空文档 10 需要url请求的资源需要访问资源的请求链接 # Hypermedia API,RESTful API最好做到Hypermedia,即返回结果中提供链接,连向其他API方法,使得用户不查文档,也知道下一步应该做什么 { "status" : 0 , "msg" : "ok" , "results" :[ { "name" : "肯德基(罗餐厅)" , "img" : "https://image.baidu.com/kfc/001.png" } ... ] } ``` |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用