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

原文:大专栏  API的分类


以上是关于API的分类的主要内容,如果未能解决你的问题,请参考以下文章

Android 插件化VirtualApp 源码分析 ( 目前的 API 现状 | 安装应用源码分析 | 安装按钮执行的操作 | 返回到 HomeActivity 执行的操作 )(代码片段

微信小程序代码片段

创建特征向量以对空中图像中的片段进行分类

如何在地图片段 API v2 布局顶部添加按钮

Express实战 - 应用案例- realworld-API - 路由设计 - mongoose - 数据验证 - 密码加密 - 登录接口 - 身份认证 - token - 增删改查API(代码片段

# Java 常用代码片段