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

目录
相关文章
|
16天前
|
编解码 前端开发 JavaScript
构建高效响应式Web界面:现代前端框架的比较
【4月更文挑战第9天】在移动设备和多样屏幕尺寸盛行的时代,构建能够适应不同视口的响应式Web界面变得至关重要。本文深入探讨了几种流行的前端框架——Bootstrap、Foundation和Tailwind CSS,分析它们在创建响应式设计中的优势与局限。通过对比这些框架的栅格系统、组件库和定制化能力,开发者可以更好地理解如何选择合适的工具来优化前端开发流程,并最终实现高性能、跨平台兼容的用户界面。
|
17天前
|
前端开发 JavaScript 关系型数据库
从前端到后端:构建现代化Web应用的技术探索
在当今互联网时代,Web应用的开发已成为了各行各业不可或缺的一部分。从前端到后端,这篇文章将带你深入探索如何构建现代化的Web应用。我们将介绍多种技术,包括前端开发、后端开发以及各种编程语言(如Java、Python、C、PHP、Go)和数据库,帮助你了解如何利用这些技术构建出高效、安全和可扩展的Web应用。
|
28天前
|
前端开发 JavaScript API
基于React的简易REST API客户端设计与实现
基于React的简易REST API客户端设计与实现
21 3
|
1月前
|
API 数据库 数据安全/隐私保护
利用Django框架构建高效后端API服务
本文将介绍如何利用Django框架构建高效的后端API服务。通过深入分析Django框架的特性和优势,结合实际案例,探讨了如何利用Django提供的强大功能来构建高性能、可扩展的后端服务。同时,还对Django框架在后端开发中的一些常见问题进行了解决方案的探讨,并提出了一些建设性的建议。
52 3
|
1月前
|
网络协议 Java Nacos
nacos常见问题之在web界面 上下线服务时报错 400如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
30 0
|
1月前
|
监控 Serverless 测试技术
Serverless 应用引擎常见问题之做的web服务计费如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总:
407 3
|
2天前
|
JSON 测试技术 API
Python的Api自动化测试使用HTTP客户端库发送请求
【4月更文挑战第18天】在Python中进行HTTP请求和API自动化测试有多个库可选:1) `requests`是最流行的选择,支持多种请求方法和内置JSON解析;2) `http.client`是标准库的一部分,适合需要低级别控制的用户;3) `urllib`提供URL操作,适用于复杂请求;4) `httpx`拥有类似`requests`的API,提供现代特性和异步支持。根据具体需求选择,如多数情况`requests`已足够。
8 3
|
6天前
|
Java API Apache
ZooKeeper【基础 03】Java 客户端 Apache Curator 基础 API 使用举例(含源代码)
【4月更文挑战第11天】ZooKeeper【基础 03】Java 客户端 Apache Curator 基础 API 使用举例(含源代码)
24 11
|
10天前
|
监控 JavaScript 安全
构建微服务架构下的API网关
【4月更文挑战第15天】在微服务架构中,API网关扮演着至关重要的角色。它作为系统的唯一入口,不仅负责请求的路由、负载均衡和认证授权,还涉及到监控、日志记录和服务熔断等关键功能。本文将探讨如何构建一个高效且可靠的API网关,涵盖其设计原则、核心组件以及实现策略,旨在为后端开发人员提供一套实用的指导方案。
25 4
|
11天前
|
数据库 开发者 Python
Python中使用Flask构建简单Web应用的例子
【4月更文挑战第15天】Flask是一个轻量级的Python Web框架,它允许开发者快速搭建Web应用,同时保持代码的简洁和清晰。下面,我们将通过一个简单的例子来展示如何在Python中使用Flask创建一个基本的Web应用。