一、软件开发的互联网思维

1. 网络就是计算机

进入互联网时代,软件开发必然放眼全局,充分利用互联网的资源和特性。比如,为了提高响应性能,就选择使用CDN作为前端缓存。而且可能还需要采用CDN提供的API进行编程,以便更加优化地调度缓存资源。类似这样可利用的网络资源很多,开发者需要统一考虑到,也就是建立起软件开发的互联网思维。这样开发出来的软件,才具有互联网基因,能够适应互联网的时代。

2. 云计算助力软件开发

云计算通过虚拟化技术把很多资源整合起来,软件开发理念不断向更高维度抽象。从虚拟机到集群,再到容器,再抽象成函数计算,软件开发越来越聚焦在业务核心上。这样的演进,必然带来效率的提升。基于云计算环境的软件,不可避免地需要通过各种API来进行资源管理。

3. WEB API的作用

1) 开放有价值的数据

       一些数据具有较强的使用价值,比如天气预报。利用 WEB API 作为开放接口,可以让数据价值作用充分发挥出来。每个人都会有打车的经历,大多服务商都在打车软件上接入天气预报API,做到提前通知司机师傅天气变化情况,司机可做好出行应急准备,以及准备好雨具等贴心服务。并可通过此情况,设定相应的价格波动控制,调动司机师傅的积极性,并给乘客提供更优质的预知服务,达到三方共赢。

2) 复杂计算接口

       WEB API的另一个主要作用就是可以作为复杂计算的开放接口。例如,针对文档的 WEB 展现,特别是在移动端WEB展现,缺少成熟通用的技术方案。一些应用不得不采取变通的办法,比如阿里钉钉把文档页转成了图片;某邮箱丢失了字体轮廓特征;某信则要下载后通过第三方APP打开。反而一些中小开发团队,通过调用九云图的文档转换 WEB API,以最少的成本,实现了更好的效果。九云图WEB API 可以把各类文档转换成包含SVG的HTML5格式,在移动端缺少字库的情况下,也能保持字体和版式完全不变,还可平滑缩放。像这样的复杂计算功能,采用 WEB API 进行接口开放,再合适不过了。

3) 云计算资源管理

       前面提到,基于云计算环境的软件,不可避免地需要通过各种API来进行资源管理。做为云计算基础设施的一部分,WEB API 是必不可少的。开发者通过调用 WEB API,可以使软件类产品高效、方便地融合到云计算体系里。


二、WEB API的统一性需求

1. 体系结构的统一

    一套完善的API,需要有一个统一的体系结构。

在API发展的各个阶段,这样的体系结构也在不断演进。初期,针对科学计算需要,主流开发语言提供了一些计算函数,那时候API体系虽然不复杂,但作为编程语言的一部分,整体的统一性非常明确,开发者很清楚有哪些函数是可以利用的。

随着IT技术的发展,出现了控件、类库、框架等越来越强大的开发接口,各种方案自成体系,尽管第三方资源不断加入,但整体的体系结构,还是依赖于核心功能的支撑。比如Java JDK提供了大量的原生类库,第三方产品虽然丰富多彩,但由于Java的平台属性,以及核心 API 功能的完善,JDK体系结构的统一性始终非常明确。维持 API 体系结构的统一性,还需要有理论的支持,比如各种 GUI 模型,都是遵循基础理论进行设计的。这保证了开发者在各种开发工具之间的思维统一,比如有了Windows GUI的开发经验后,再从事 Java Swing 开发时,也会得心应手。

当前,WEB API 在体系结构的统一方面,还十分不足。既缺乏理论基础,又缺少基本框架。显得非常散乱,即使同一个云厂商的各种资源接口,也缺少合理的分类体系结构。开发者面对这些 WEB API,很难做到了然于胸。如果能够规划出一个合理的体系结构,以云计算资源为主干,分门别类,第三方API都能在这个分类体系中找到相应的位置。开发者在使用 WEB API时,就能得心应手了。

2. 接口规范的统一

和传统的 API 一样,一套具备完善体系结构的 WEB API,也需要有统一的接口规范。让开发者有明确的标准,可以提高沟通和使用的效率。

3. 交互方式的统一

最开始提到网络就是计算机,互联网、云计算的各种资源,需要协同工作。WEB API 应该提供订阅、监听、事件等机制,统一各资源之间的交互方式。使整个 API 体系互相关联,成为一个协同运作的统一体,不再是众多分散存在的零部件。

4. 安全保障的统一

和传统API的最大不同,就是WEB API面临着非常高的安全需求。互联网的开放,使网络资源和服务都面临着巨大的风险。这是 WEB API 必须要解决的问题。各个云计算厂商和第三方WEB API开发者,建立了一些加密、鉴权等机制,但是很多都是分散实施的,有些也提供了统一的访问控制,比如阿里云的RAM。但是在针对WEB API的安全保障方面,统一的程度、力度、透明度,以及抽象的层级似乎还远远不够。依靠中心化保障安全机制固然有必要,但是否应该引入区块链这样的技术作为安全机制的补充,也是一个需要考虑的问题。

三、软件产业大规模协作的前提

目前,软件开发领域技术协作性不强,从阿里云API市场的交易量也可以看出。这是由于软件产业起步较晚,成熟度不够导致的。而一些成熟度较高的产业,比如汽车制造业,技术协作十分广泛,大量的零部件都是协作生产的。软件产业要实现大规模协作,至少需要具备如下两个条件:

1. 繁荣的生态

一个繁荣的生态需要健全的基础设施,WEB API领域的基础设施包括数据、网络资源和体系结构。随着云计算的发展普及,数据和网络资源基本具备,当务之急是要建立统一的体系结构。这样的体系结构,需要完善、有力的主干支撑,必须有足够规模和实力的企业投入资源,发挥主干作用,才有可能让WEB API生态繁荣起来。

2. 系统准入和监管

       软件产业的技术协作如果要打开局面,还有两件事情必须要做。一是制订一些技术标准,二是发放资质证书。传统产业这两件事做得很好,基本都是政府在主导。这样可以保障技术协作的可靠性,因为政府在制订标准和发放牌照的过程中,间接承担了担保人的角色。而软件产业的技术协作,政府却没有条件做上面的两件事。这就需要有实力的企业来承担这个角色,一方面对WEB API产品制定一些技术标准,比如文档格式转换类的,应提供什么样的接口,参数的类型、命名、响应的时间等;另一方面,对符合标准的WEB API发放资质证明,并对获得资质的产品进行日常核查,确保其运行状态稳定,为使用者提供充分可靠的服务。

九云图做为阿里云API应用创新大赛两届的参赛团队,在文档处理、云端存储、WEB 展现的研发上具有多年的经验与技术积累。他们开发的“九云图文档格式转换API”已在阿里云API市场上开放调用。做为WEB API领域的早期开拓者,九云图为WEB API的发展迈出了第一步。

他们本届的参赛作品“旅游产品海报自动生成系统”,是根据旅行社用户上传的行程文档,进行文本解析后,自动生成带H5二维码的宣传海报。该作品用到了九云图文档转H5 APl、阿里云自然语言处理 APl、阿里云 OCR APl、阿里云人脸识别 APl、百度图片 APl,还有阿里云函数计算、OSS APl 等。

WEB API已渗入我们生活、出行、工作的各环节,成为了每个重要信息技术趋势的核心内容。移动设备、云计算、物联网、大数据及社交网络等应用都依赖于一个基于WEB的界面与它们的分布式组件进行连接,为全球范围内的各个商业领域提供具有创新性和颠覆性的解决方法。而WEB API的使用既是催化剂,也是促成这些成果的主要力量。

WEB API已成为构建客户端服务的利器?相关推荐

  1. 【视频教程】使用 ASP.NET Core 3.x 构建 RESTful Web API 已完结

    使用 ASP.NET Core 3.x 构建 RESTful Web API 的视频教程已经完结,共50讲,约10.5小时. B站可看,点击原文链接. 度娘盘可下载完整视频: https://pan. ...

  2. django restful 请求_利用 Django REST framework 构建 RESTful Web API

    利用 Django REST framework 构建 RESTful Web API 终于到了动手操作的环节啦,这一节,我们以师生管理系统为例,带领大家搭建一套 framework Web API. ...

  3. Web API 入门指南

    Web API是一个比较宽泛的概念.这里我们提到Web API特指ASP.NET Web API. 这篇文章中我们主要介绍Web API的主要功能以及与其他同类型框架的对比,最后通过一些相对复杂的实例 ...

  4. 浅谈web api和Webservice

    浅谈web api和Webservice webapi用的是http协议,webservice用的是soap协议 webapi无状态,相对webservice更轻量级.webapi支持如get,pos ...

  5. 连接Android与ASP.NET Core Web API的完整教程

    目录 准备数据库 ASP.NET Core Web API项目 创建新的ASP.NET Core Web API项目 实体 导入EF Core 创建DbContext 将连接字符串添加到appsett ...

  6. 在IIS上部署ASP.NET Core Web API

    目录 Visual Studio 2019和Dot Net Core 3.0 Windows Server上的Dot Net Core运行时 在服务器上启用IIS IIS应用程序池 IIS网站 创建A ...

  7. ASP.NET Web API入门介绍(一)

    随着项目的复杂度越来越高,各种第三方系统的数据交互也越来越频繁,不可避免的就要用到Web API接口,这里Web API是一个比较宽泛的概念.本文提到Web API特指ASP.NET Web API. ...

  8. ASP.NET Web API 特性

    ASP.NET MVC 4 包含了 ASP.NET Web API, 这是一个创建可以连接包括浏览器.移动设备等多种客户端的 Http 服务的新框架, ASP.NET Web API 也是构建 RES ...

  9. .NET和.NET Core Web APi FormData多文件上传

    [导读]最近因维护.NET和.NET Core项目用到文件上传功能,虽说也做过,但是没做过什么对比,借此将二者利用Ajax通过FormData上传文件做一个总结,通过视图提交表单太简单,这里不做阐述, ...

最新文章

  1. 网络异常_网络异常易频发,流量分析来排查
  2. python预处理删除特殊字符_python - 如何删除包含特殊字符的字符串?_others_酷徒编程知识库...
  3. 详解可视化利器 t-SNE 算法:数无形时少直觉
  4. 最好用的 IntelliJ 插件 Top 10
  5. go int 最大值_Dig101 - Go之灵活的slice
  6. 多重继承_Python 和 Java 基础对比 10 —— 类的封装、继承和多态
  7. 【转载】图片 CSS:怎样才能 “响应式 + 固定宽高比例”?
  8. 数字资产价值巨大,GMQGroup深入布局挖掘数字财富
  9. VC的function类说明 -- 继续
  10. 致运维——运维军团告诉你如何走过七年之痒
  11. 浅谈欧姆龙system studio和Cx-one软件编程上区别
  12. CAD图纸被设置成只读格式,如何取消?
  13. java项目开发团队协作重要性_Java1班项目实战 | 团队协作,我们是认真的!
  14. 谢谢 留下几个 那个有关于C++既QQ群吖
  15. XP系统无法设置用户权限,如加everyone等的
  16. python数据可视化读取excell文件绘制图像详细教程
  17. 【Android界面实现】Starting an Activity(Activity生命周期金字塔模型)
  18. 前NASA气象学家洛夫洛克宣判地球死刑
  19. 微信小程序-audio功能实现
  20. 解决org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):xxx问题

热门文章

  1. 混合索引_数据库面试题:查询在什么情况下不?索引-数据库知识点
  2. virtualbox中文技术文档_随笔--西门子STEP7中如何寻找技术文档
  3. 和方舟rust一样的手游_三大高人气手游盘点,《方舟:生存进化》的世界靠支配恐龙来生存...
  4. GoogLeNet Inception 系列
  5. 全球及中国家用除湿机行业消费需求调研及十四五发展趋势研究报告2022-2027年
  6. shopee本土店怎么做,一些运营技巧分享
  7. 全球与中国激光投影设备市场前景规划与发展战略建议报告2022-2028年版
  8. 全球与中国聚硫聚合物市场发展前景与投资可行性分析报告2021年版
  9. 美国农业生产与农产品国际贸易 对话国际农民丰收节贸易会
  10. Go 指针,标识符命名规范及关键字