API和Web API

一、API

API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

简单地说:API是给程序员提供的一种工具,以便能轻松的实现想要完成的功能。

举个例子,比如给手机充电,我们要实现充电这个功能:

  • 我们不关心手机内部变压器,内部怎么存储电等
  • 我们不关心这个充电线是怎么制作的
  • 只需要知道拿着充电线插进充电接口就可以充电
  • 这个充电接口就相当于一个API。

二、Web API

Web API是浏览器提供的一套操作浏览器功能和页面元素的API(BOM和DOM)。
它包含了广泛的功能,网络应用通过API接口,可以实现存储服务、消息服务、计算服务的能力,利用这些能力可以进行开发出强大功能的web应用。简单来说,就是一个接口,比如说,我们要做前后端分离的项目,前端和后端通过url连接,但是我们如何知道后端的数据是否通了,返回的数据是否正确,于是我们通过这个接口知道。
现阶段主要针对于浏览器的常用的PAI,以及针对浏览器做交互效果。比如要想浏览器弹出一个警示框,直接使用alert(‘弹出’)。
MDN详细API
因为Web API很多,所以成为Web APIs

三、为什么使用Web API

Web API最重要的是可以构建面向各种客户端的服务。另外与WCF REST Service不同在于,Web API利用Http协议的各个方面来表达服务(例如 URI/request response header/caching/versioning/content format),因此就省掉很多配置。

当遇到以下这些情况的时候,就可以考虑使用Web API了。

  • 需要Web Service但是不需要SOAP
  • 需要在已有的WCF服务基础上建立non-soap-based http服务
  • 只想发布一些简单的Http服务,不想使用相对复杂的WCF配置
  • 发布的服务可能会被带宽受限的设备访问
  • 希望使用开源框架,关键时候可以自己调试或者自定义一下框架

四、Web API的主要功能

  1. 支持基于Http verb (GET, POST, PUT, DELETE)的CRUD (create, retrieve, update, delete)操作

    通过不同的http动作表达不同的含义,这样就不需要暴露多个API来支持这些基本操作。

  2. 请求的回复通过Http Status Code表达不同含义,并且客户端可以通过Accept header来与服务器协商格式,例如你希望服务器返回JSON格式还是XML格式。

  3. 请求的回复格式支持 JSON,XML,并且可以扩展添加其他格式。

  4. 原生支持OData。

  5. 支持Self-host或者IIS host。

  6. 支持大多数MVC功能,例如Routing/Controller/Action Result/Filter/Model Builder/IOC Container/Dependency Injection。

五、小结

1、API是为程序员提供的接口,帮助程序员实现功能,尽量会使用就好了,不必纠结内部如何实现。
2、Web API 主要针对浏览器提供的接口,用于浏览器做交互效果 。
3、Web API一般都有输入和输出(函数的传参和返回),Web API很多都是方法(函数)。

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐