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

原文:大专栏  API的分类


猜你喜欢

转载自www.cnblogs.com/chinatrump/p/11612096.html