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

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

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

1. 网络就是计算机

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

2. 云计算助力软件开发

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

5be724ae712e8701a9c27c0b39a7c194ebba62b9

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的使用既是催化剂,也是促成这些成果的主要力量。

ef7ba1441b2b5861669fa12924a0dac744d9d85e

目录
相关文章
|
7天前
|
数据库 Python
Python实践:从零开始构建你的第一个Web应用
使用Python和轻量级Web框架Flask,你可以轻松创建Web应用。先确保安装了Python,然后通过`pip install Flask`安装Flask。在`app.py`中编写基本的"Hello, World!"应用,定义路由`@app.route('/')`并运行`python app.py`启动服务器。扩展应用,可添加新路由显示当前时间,展示Flask处理动态内容的能力。开始你的Web开发之旅吧!【6月更文挑战第13天】
32 2
|
11天前
|
SQL 安全 数据库
如何构建一个安全的Web应用:技术与策略的全面指南
【6月更文挑战第12天】构建安全Web应用的全面指南:了解SQL注入、XSS等威胁,采用输入验证、安全编程语言,配置安全服务器和数据库,使用HTTPS,实施会话管理、访问控制,正确处理错误和日志,定期进行安全审计和漏洞扫描。确保用户数据和应用安全。
|
12天前
|
中间件 API Go
使用Echo和Gin构建高性能Web服务的技术文档
本文档对比了Go语言中的两个流行Web框架——Echo和Gin。Echo是一个高性能、可扩展的框架,适合构建微服务和API,强调简洁API和并发性能。Gin基于net/http包,具有Martini风格API,以其快速路由和丰富社区支持闻名。在性能方面,Gin的路由性能出色,两者并发性能均强,内存占用低。文中还提供了使用Echo和Gin构建Web服务的代码示例,帮助开发者了解如何运用这两个框架。选择框架应考虑项目需求和个人喜好。
25 2
|
4天前
|
关系型数据库 MySQL 数据库
如何使用Python的Flask框架来构建一个简单的Web应用
如何使用Python的Flask框架来构建一个简单的Web应用
11 0
|
3天前
|
开发框架 .NET PHP
Web服务搭建&站库分离&路由访问
Web服务搭建&站库分离&路由访问
|
8天前
|
安全 API 网络架构
构建高效的RESTful API:后端开发的最佳实践
【6月更文挑战第14天】在数字化时代,RESTful API是连接不同软件系统和促进数据交换的关键。本文将深入探讨如何设计、实现和维护一个高效、可扩展且安全的RESTful API,确保后端服务的响应性、可靠性和安全性。
|
5天前
|
缓存 前端开发 JavaScript
【前端性能优化】深入解析重绘和回流,构建高性能Web界面
【前端性能优化】深入解析重绘和回流,构建高性能Web界面
17 1
|
6天前
|
XML 前端开发 API
构建高效后端:RESTful API设计的最佳实践
【6月更文挑战第16天】在本文中,我们将深入探讨如何构建高效的后端系统,特别是如何设计出符合最佳实践的RESTful API。我们将从基础概念开始,逐步深入到具体的设计原则和技巧,最后通过一个实际案例来展示这些原则的应用。无论你是后端开发的新手,还是有一定经验的开发者,这篇文章都将为你提供有价值的指导。
|
11天前
|
缓存 安全 API
构建高效API:RESTful设计原则与实践
【6月更文挑战第10天】在数字化时代,API作为不同软件组件之间通信的桥梁,其设计质量直接影响到应用的性能和用户体验。本文深入探讨了RESTful API的设计原则,并通过实际案例分析如何构建高效、可扩展且安全的API。我们将从资源定义、接口一致性、错误处理等方面入手,逐步揭示如何优化API设计,以满足不断变化的技术需求和业务目标。
|
10天前
jetty内嵌web页面服务入门
jetty内嵌web页面服务入门
10 1