一、灵魂发问
开始学习之前,先问一下自己,什么是接口呢?接口是用来做什么的呢?常见的接口类型有哪些?
二、什么是接口呢
接口:泛指实体吧自己提供给外界的一种抽象化物(可以为另一实体),用以由内部操作分离出外部沟通方法,时期能被内部修改而不影响外界其他实体与其交互的方式。下面简单举几个例子。
人类与电脑等信息机器或人类与程序之间的接口为用户界面。电脑等信息机器硬件组件间的接口叫硬件接口,信息机器软件组件间的接口叫软件接口。
在计算机中,接口是计算机系统两个独立的部件进行信息交换的共享边界。这种交换可以发生在计算机软、硬件,外部设备或进行操作的人之间,也可以是它们的结合
三、接口是用来做什么的呢
在整个系统设计中,由于涉及到很多层,要使各层之间调用透明化,可以按照接口做具体的事情,从而融合到整个系统中。
四、常见的接口类型有哪些
接口是指外部系统与系统之间以及内部各子系统之间的交互点,包括外部接口和内部接口。内部接口包括上层服务与下层服务接口和同级接口。
常见web接口:1.http协议的接口;2.web service接口(如soup、rmi、rpc协议)
常见的http请求方式包括:get(查)、post(增),还有put(改)和delete(删)。工作中常见的是get和post两种。
GET:本质是发送一个请求来获得服务器上的某一资源。资源通过一组HTTP头和呈现据(如HTML文本,或者图片或者视频等)返回给客户端。GET请求中,永远不会包含呈现数据。
(1)格式:请求参数写在网址后面,用“?”连接,多个参数之间用“&”连接。如:https://api.douban.com/v2/book/search?q='',这是一个豆瓣查询图书信息的开发api,q='',单引号里就是查询的参数,如查询《小王子》这本书的信息,则q='小王子',使用postman工具来试验一下,如下图:
(2)使用场景:get型接口用于获取信息,多用于查询数据,如列表查询功能,点击查询按钮就调用一个get接口,然后把信息返回出来
(3)特点:1)请求数据量小,2)参数暴露于url地址中,故存在安全隐患
POST:本质是向服务器提交数据。
(1)使用场景:如注册、上传、发帖等功能,如用户在豆瓣网站对某本书进行收藏、写笔记、发表评论
(2)特点:1)请求数据量大,2)安全性高
如豆瓣的发表评论的开放api,见下图:
PUT:这个方法比较少见。HTML表单也不支持这个。本质上来讲, PUT和POST极为相似,都是向服务器发送数据,但它们之间有一个重要区别,PUT通常指定了资源的存放位置,而POST则没有,POST的数据存放位置由服务器自己决定。客户端向服务器传送的数据取代指定文档的内容。
举个例子:如一个用于提交博文的URL,/addBlog。如果用PUT,则提交的URL会是像这样的”/addBlog/abc123”,其中abc123就是这个博文的地址。而如果用POST,则这个地址会在提交后由服务器告知客户端。目前大部分博客都是这样的。显然,PUT和POST用途是不一样的。具体用哪个还取决于当前的业务场景。
(1)说明:put请求用于向指定资源位置上传最新内容
(2)场景:如用户在豆瓣网站修改对某本书的收藏、修改某篇笔记或修改评论
如豆瓣的修改评论的开放api,见下图:
DELETE:删除某一个资源。基本上这个也很少见,不过还是有一些地方比如amazon的S3云服务里面就用的这个方法来删除资源。
(1)说明:请求服务器删除请求里url所标识的资源
(2)场景:如用户在豆瓣网站取消对某本书的收藏、删除某篇笔记或删除评论
如豆瓣的删除评论的开放api,见下图:
最后,分享一道面试中常会给问到的面试题!!!
get和post的区别?
这个问题,面试中经常被提到。简单来说,可以从三个方面去回答这个区别:方式、大小、安全
1).方式
方式指的是参数的传入方式,GET方法一般是指获取服务器上的数据,参数直接跟着URL后边,直接可以放到浏览器地址栏里,例如登录就是采用GET方法。而POST方法是指客户端给服务器上提交表单数据,所以POST是通过表单提交的,例如你网页上的新用户的注册、调查问卷和答题就是采用POST方法。
2).大小
上面已经知道GET是直接在浏览器地址栏输入,由于浏览器有限制,一般整个URL的长度可以很长,但是不能超过2049KB的大小限制,而这个POST就没有大小限制。
3).安全性
由于GET的参数是在浏览器地址栏直接拼接,暴露在互联网中,肯定不安全。POST是通过表单数据提交,相对比GET方法更安全。
参考链接:https://www.cnblogs.com/du-hong/p/10488565.html