首页技术文章正文

学习交流1【黑马python培训】

更新时间:2019年07月26日 11时11分34秒 来源:黑马程序员论坛

### restful接口的设计规范

restful设计方法规定了一下几个方面:

- 域名

  - 尽量每个域名(二级域名)完成每块功能
  - 如果API很简单就放在主域名下

- 版本

  - 应该将API的版本号放入URL路径中;示例:

  ```python
  http://www.example.com/app/1.0/foo
  http://www.example.com/app/1.1/foo
  http://www.example.com/app/2.0/foo
  ```

  - 另一种方式就是将版本号放在HTTP请求头中,这种方法没有放在url中方便,直观

- 路径

  - 资源路径中只能有名词,不能有动词,而且所用的名词往往与数据库的表名相对应
  - API中的名词应该使用复数

- Http动词(请求方式)

  - 常用的HTTP动词有下面四个(括号里是对应的SQL命令)
    - GET(SELECT):从服务器取出资源(一项或多项)
    - POST(CREATE):在服务器新建一个资源
    - PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)
    - DELETE(DELETE):从服务器删除资源
  - 还有三个不常用的HTTP动词
    - PATCH(UPDATE):在服务器更新(更新)资源(客户端提供改变的属性)
    - HEAD:获取资源的元数据
    - OPTIONS:获取信息,关于资源的哪些属性是客户端可以改变的

- 参数

  - 根据不同的请求方式,传递参数的格式也不一样;一般来说
    - 使用GET方式请求查询数据库数据:
      - 如果是查询一条数据则将数据的id以路径拼接参数的方式传递给服务器
      - 如果是要查询所有的数据则直接在路径中使用API的复数名词即可,不用跟数据的id;
      - 如果要查询表中的多条数据则以查询所有数据的方式,然后将筛选条件一个查询参数的格式传给服务器

- 过滤信息

  - 如果返回结果很多需要对返回结果进行过滤的话,过滤参数要以查询参数的方式进行传递(如:对返回结果的数量,指定第几页或指定开始位置等都可以通过查询参数进行传递)

- 状态码

  - 200 OK - [GET]:服务器成功返回用户请求的数据
  - 201 CREATED - [POST/PUT/PATCH]:用户新建或修改数据成功。
  - 202 Accepted - [*]:表示一个请求已经进入后台排队(异步任务)
  - 204 NO CONTENT - [DELETE]:用户删除数据成功。
  - 400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作
  - 401 Unauthorized - [*]:表示用户没有权限(令牌、用户名、密码错误)
  - 403 Forbidden - [*] 表示用户得到授权(与401错误相对),但是访问是被禁止的
  - 404 NOT FOUND - [*]:用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的
  - 406 Not Acceptable - [GET]:用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)
  - 410 Gone -[GET]:用户请求的资源被永久删除,且不会再得到的
  - 422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误
  - 500 INTERNAL SERVER ERROR - [*]:服务器发生错误,用户将无法判断发出的请求是否成功

- 错误处理

  - 如果请求错误,服务器向用户返回的信息一般来说是以error为键名,出错的信息作为键值

- 返回结果

  - 针对不同操作,服务器向用户返回的结果应该符合以下规范
    - GET /collection:返回资源对象的列表(数组)
    - GET /collection/resource:返回单个资源对象
    - POST /collection:返回新生成的资源对象
    - PUT /collection/resource:返回完整的资源对象
    - PATCH /collection/resource:返回完整的资源对象
    - DELETE /collection/resource:返回一个空文档

推荐了解热门学科

java培训 Python人工智能 Web前端培训 PHP培训
区块链培训 影视制作培训 C++培训 产品经理培训
UI设计培训 新媒体培训 产品经理培训 Linux运维
大数据培训 智能机器人软件开发




传智播客是一家致力于培养高素质软件开发人才的科技公司“黑马程序员”是传智播客旗下高端IT教育品牌。自“黑马程序员”成立以来,教学研发团队一直致力于打造精品课程资源,不断在产、学、研3个层面创新自己的执教理念与教学方针,并集中“黑马程序员”的优势力量,针对性地出版了计算机系列教材50多册,制作教学视频数+套,发表各类技术文章数百篇。

传智播客从未停止思考

传智播客副总裁毕向东在2019IT培训行业变革大会提到,“传智播客意识到企业的用人需求已经从初级程序员升级到中高级程序员,具备多领域、多行业项目经验的人才成为企业用人的首选。”

中级程序员和初级程序员的差别在哪里?
项目经验。毕向东表示,“中级程序员和初级程序员最大的差别在于中级程序员比初级程序员多了三四年的工作经验,从而多出了更多的项目经验。“为此,传智播客研究院引进曾在知名IT企业如阿里、IBM就职的高级技术专家,集中研发面向中高级程序员的课程,用以满足企业用人需求,尽快补全IT行业所需的人才缺口。

何为中高级程序员课程?

传智播客进行了定义。中高级程序员课程,是在当前主流的初级程序员课程的基础上,增加多领域多行业的含金量项目,从技术的广度和深度上进行拓展“我们希望用5年的时间,打造上百个高含金量的项目,覆盖主流的32个行业。”传智播客课程研发总监于洋表示。




黑马程序员热门视频教程【点击播放】

Python入门教程完整版(懂中文就能学会) 零起点打开Java世界的大门
C++| 匠心之作 从0到1入门学编程 PHP|零基础入门开发者编程核心技术
Web前端入门教程_Web前端html+css+JavaScript 软件测试入门到精通


在线咨询 我要报名
和我们在线交谈!