API的分类

时间:2022-06-07 01:12:01

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