一、API
什么是API?
应用程序接口(英语:Application Programming Interface,简称:API)
又称为应用编程接口,就是软件系统不同组成部分衔接的约定。
是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
API作用介绍
1.通过API我们可以知道要查询类的所在包。
2.通过API可以查看类的继承(extends)关系和实现(implements)关系和功能描述。
3.通过API我们可以知道要查询的类的类型是接口,抽象类或普通类等以及类的一些权限修饰权限。
4.通过API我们可以知道要查询的类的构造方法,无参构造,有参构造,可以针对参数类型进行说明等。
5.通过API我们可以知道要查询的类的成员方法,例如Math来举例。
二、什么是Web API
Web API是网络应用程序接口。包含了广泛的功能,网络应用通过API接口,可以实现存储服务、消息服务、计算服务等能力,利用这些能力可以进行开发出强大功能的web应用。
Web API的6个基本设施
存储服务:存储服务关注抽象化和虚拟化存储。这个领域的领头羊是amazon s3,在我的article in web 2.0 journal中对其曾有较深入的探讨。对开发者而言,S3提供了极其精简抽象的如哈希表之类的API,允许你轻松存取信息。
消息服务:消息服务在概念上类似于传统意义上的中间件。由于技术和商业上的复杂性,它们还没有被大规模开发。短期内可见的基于web的通讯服务是Amazon Simple Queue Service。这个服务使得任意应用间安全和可扩展的基于队列的通讯更为便利。
计算服务:目前还没有一个一般的可以通过api访问的web计算服务黑盒,但有不少技术指向这个方向。一个是alexavertical search platform,在下面的搜索服务小节会提及更多,第二个是网格计算,比如 sungrid,datasynapse’s gridserver或者platform’s symphony。
信息服务:信息服务提供海量特定的信息。包括像Google Maps API的地理数据,像Amazon E-Commerce,Amazon historcal Pricing Services的产品数据和最新发布的Yahoo!answer’s API登。这些服务的共同点是它们都提供
搜索服务:因为搜索在web领域的基础和统治地位,搜索服务构成了新的web基础架构的关键部分。Google search
web2.0服务:最后一类宽泛的叫它们web2.0服务,名字不一定切题,但它包含诸如del.icio.us,flickr,basecamp。John Musser在Programmableweb中编译了一些非常有影响的api。
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。