API的分类
Posted petewell
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了API的分类相关的知识,希望对你有一定的参考价值。
API和SDK的区别
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
- 经常听到的RESTFul的API,是用于规范通信协议的使用
以上是关于API的分类的主要内容,如果未能解决你的问题,请参考以下文章
Android 插件化VirtualApp 源码分析 ( 目前的 API 现状 | 安装应用源码分析 | 安装按钮执行的操作 | 返回到 HomeActivity 执行的操作 )(代码片段
Express实战 - 应用案例- realworld-API - 路由设计 - mongoose - 数据验证 - 密码加密 - 登录接口 - 身份认证 - token - 增删改查API(代码片段