API=Application Programming Interface, 应用程序编程接口 SDK=Software Development Kit,软件开发包 二者关键的区别在于 接口和包 上 SDK一定定义了接口,但API不一定有包 比如Windows SDK里面包含了各种lib、dll
API的分类个人理解,API大致分为两类 一类是基于源码的接口 一类是基于协议的接口
基于源码的接口场景
进程内的接口一般都会采用此类接口
当接口需要跨进程控制,且通信为私有协议,一般会采用此类接口
为了降低二次开发门槛,也会采用此类接口
提供形式
一般来说,这类接口都是以C/C++提供,因为其它语言也有机制调用
接口会提供头文件、lib、dll(a或so)
优点
可以让开发者调用更加方便
一般底层协议都是双工协议,可以更好的做服务器推送
缺点
维护成本增加
需要考虑各种跨平台处理
升级需要考虑各种兼容问题
基于协议的接口场景
C/S B/S等跨进程通信模型
服务器可以对外提供标准通信协议
提供形式
通过标准的通信协议+编码协议来制定接口
目前比较多的组合就是Http+Json 或 Http+Xml
当然还有grpc使用的http2+pb
优点
更加的开放,比较适应当前互联网的开发模式
更多的关注放到服务端
可以更好的升级
缺点
Http本身问题,推送比较麻烦
二次开发者需要自己处理客户端逻辑
其它延伸关于RESTFul和RPC
经常听到的RESTFul的API,是用于规范通信协议的使用
操作需要严格遵循POST GET PUT DELETE
URL需要保证每个URL代表一个对象或一类对象,不能包含动词
RPC是用于C/S或B/S之间的调用规范
google的grpc
facebook的thrift
原文:大专栏 API的分类
API的分类
标签:
原文地址:https://www.cnblogs.com/chinatrump/p/11612096.html