软件开发中常说的RESTful风格API究竟是什么

软件开发中常说的RESTful风格API究竟是什么?

软件编程指南 2018-07-03 06:44:00

一说到REST,我想大家的第一反应就是“啊,就是那种前后台通信方式。”但是在要求详细讲述它所提出的各个约束,以及如何开始搭建REST服务时,却很少有人能够清晰地说出它到底是什么,需要遵守什么样的准则。在您将看到的这一篇文章中,我们将对REST,尤其是基于HTTP的REST服务进行详细地介绍。通过这些文章,您不仅可以了解到什么是REST,更能清晰地了解到您在编写REST服务时所需要遵守的各个守则,设计RESTful API时需要考虑的各种因素以及实现过程中可能遇到的问题等内容。

目录

  1. Rest关键词解释
  2. REST概念
  3. REST遇到的问题及示例
  4. 总结

一. Rest关键词解释

  1. REST(Representational State Transfer):表述性状态转移
  2. Rest是web服务的一种架构风格,一种轻量级,跨平台,跨语言的架构设计;

二. Rest概念

在RESTful架构中,每个网址代表一种资源(resource),所有网址请求接口中不能有动词,只能有名词,这点和数据库设计风格很像。

那么可能有同学会问了?动词怎么来表示呢?

常用的HTTP动词有五个,对应sql中命令。也就是说我们定义接口url中一般不会出现动词,都是使用名词,而动词使用HTTP请求方式来表示。

  • GET(SELECT):从服务器取出资源(一项或多项)。
  • POST(CREATE):在服务器新建一个资源。
  • PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。
  • PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)。
  • DELETE(DELETE):从服务器删除资源。
img_0d4c31f480cec51d889dd297644bc8af.jpe
软件开发中常说的RESTful风格API究竟是什么?
img_63c3370357ec67c9e73238faa65c98df.jpe
软件开发中常说的RESTful风格API究竟是什么?

三. REST遇到的问题

复数形式怎么表示?

版本怎么表示(演示中我们参考github的风格)?

其实一般互联网技术类公司都有自己的风格,这个参考就好

例子

  • GET /zoos:列出所有动物园
  • POST /zoos:新建一个动物园
  • GET /zoos/ID:获取某个指定动物园的信息
  • PUT /zoos/ID:更新某个指定动物园的信息(提供该动物园的全部信息)
  • PATCH /zoos/ID:更新某个指定动物园的信息(提供该动物园的部分信息)
  • DELETE /zoos/ID:删除某个动物园
  • GET /zoos/ID/animals:列出某个指定动物园的所有动物
  • DELETE /zoos/ID/animals/ID:删除某个指定动物园的指定动物

总结

当你看到这里,这边文章已经讲完了,相信你已经,对什么是Restful风格已经有一个自己的概念。但是小编还是要强调一点的是。请务必记住: REST是一种跨平台、跨语言的架构风格。而不是已经技术。所以对于刚入行的开发者,请千万不要害怕。其实就这么简单。

优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/636368

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。