Python后端RESTfulAPI 设计规范的理解

216 篇文章 2 订阅
34 篇文章 1 订阅

一、域名

将 api 部署在专用域名下:http://api.example.com
或者将 api 放在主域名下:http://www.example.com/api/。

二、版本

将 API 的版本号放在 url 中。http://www.example.com/app/1.0/info。

三、路径

路径表示 API 的具体网址。每个网址代表一种资源。 资源作为网址,网址中不能有动词只能有名词, 一般名词要与数据库的表名对应。而且名词要使用复数。

错误示例:http://www.example.com/getGoods
http://www.example.com/listOrders

正确示例: #获取单个商品 http://www.example.com/app/goods/1

#获取所有商品 http://www.example.com/app/goods

四、使用标准的 HTTP 方法

对于资源的具体操作类型,由 HTTP 动词表示。 常用的 HTTP 动词有四个。

五、过滤信息

如果资源数据较多,服务器不能将所有数据一次全部返回给客户端。

API 应该提供参数,过滤返回 结果。

实例:

#指定返回数据的数量 http://www.example.com/goods?limit=10
#指定返回数据的开始位置 http://www.example.com/goods?offset=10
#指定第几页,以及每页数据的数量 http://www.example.com/goods?page=2&per_page=20

六、状态码

服务器向用户返回的状态码和提示信息,

常用的有:
200 OK :服务器成功返回用户请求的数据
201 CREATED :用户新建或修改数据成功。
202 Accepted:表示请求已进入后台排队。
400 INVALID REQUEST :用户发出的请求有错误。
401 Unauthorized :用户没有权限。
403 Forbidden :访问被禁止。
404 NOT FOUND :请求针对的是不存在的记录。
406 Not Acceptable :用户请求的的格式不正确。
500 INTERNAL SERVER ERROR :服务器发生错误。

七、错误信息

一般来说,服务器返回的错误信息,以键值对的形式返回。

 {
  error:'Invalid  API  KEY'
 } 

八、响应结果:

针对不同结果,服务器向客户端返回的结果应符合以下规范。

#返回商品列表 GET http://www.example.com/goods
#返回单个商品 GET http://www.example.com/goods/cup
#返回新生成的商品 POST http://www.example.com/goods
#返回一个空文档 DELETE http://www.example.com/goods

九、使用链接关联相关的资源

在返回响应结果时提供链接其他 API 的方法,使客户端很方便的获取相关联的信息。

十、其他

服务器返回的数据格式,应该尽量使用 JSON,避免使用 XML。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当面试python后端开发时,面试官通常会关注以下几个方面: 1. Python基础知识:确保你对Python的基本语法、数据类型、函数、类和模块等有良好的理解。 2. Web开发框架:熟悉至少一种常用的Python Web框架(如Django、Flask等),能够使用框架搭建Web应用。 3. 数据库和ORM:了解SQL语言和关系型数据库(如MySQL、PostgreSQL)的基础知识,熟悉至少一种ORM库(如SQLAlchemy)的使用。 4. RESTful API设计:理解RESTful API的基本原则和设计规范,能够设计和实现符合RESTful风格的API接口。 5. 缓存和消息队列:了解常用的缓存技术(如Redis)和消息队列(如RabbitMQ),能够在项目中使用它们提高性能和可扩展性。 6. 测试和调试:熟悉单元测试和集成测试的基本概念和工具(如unittest、pytest),能够编写高质量的测试用例。 7. 性能优化和调优:了解性能优化的基本原则和方法,能够对代码和系统进行性能分析和调优。 8. 安全性和权限控制:了解常见的Web安全漏洞(如跨站脚本攻击、SQL注入等)和防御措施,能够设计和实现安全的Web应用。 9. 版本控制和协作工具:熟悉Git等版本控制工具的基本使用,能够与团队成员协作开发项目。 此外,面试官可能还会问到你在前端开发、操作系统、网络等相关知识方面的了解情况,以及一些具体项目经验和解决实际问题的能力。准备面试时,建议你复习这些知识点,并通过实际项目经验来展示你的技能和能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值