云API,让应用程序“动”起来!

简介:

随着云应用的增长,越来越多的企业尝试同时使用多个供应商。弥补服务中断的需求,使用不同服务的需求,以及基于费用选择服务的能力,都强调了对数据和应用程序可移植性的需求。应用程序编程接口是和云服务交互的关键,但是跨供应商的API区别巨大——这让移植非常困难。

本文研究了云的可移植性可能遇到的挑战,并且探讨API在其中所起的作用。

云上应用可移植性的最大问题是什么?

在所有情况下,API都是用来访问数据和服务的。没有具体的规则来定义云计算API应该如何工作或者它们应该提供什么功能。但是,当多个供应商提供相互竞争的或者类似的服务,并且使用完全不同的API去访问这些服务时,问题就出现了。

对于软件开发人员来说,这就是个噩梦。他们可能不得不重写软件以便使用某个特定服务的API,这通常导致出现软件的多个版本。在一些情况下,开发人员能够设计软件,让其检测特定的服务并且使用相应的API,但是这会让应用程序的整体大小急速膨胀,并且导致测试很复杂。不管使用上述哪种方式,为不同的云计算API创建应用程序的代价都很高,且需要花很多时间。

市场上哪些公有云计算API呢?

在公有云领域有三种常见类型的API:基础架构、服务和应用程序。

基础架构或基础架构即服务(IaaS)API意图控制低级别的资源,比如虚拟机(VM)镜像、可扩展组群和负载均衡。开发人员和IT团队使用基础架构API来预配,管理并移除公有云资源。比如,开发人员可以使用Amazon Web Services (AWS) Elastic Compute Cloud API在EC2实例里创建、移除以及使用镜像。

服务或者平台即服务API支持访问定义良好的服务或者功能,比如数据库、管理和汇报工具、消息系统、门户以及存储实例。服务API通常和基础架构即服务API协同使用,来构造出复杂的工作环境。比如,开发人员可能会使用基础架构API来预配VM,然后使用服务API将存储实例附加到VM上。

跨云API

还有跨云的API,比如Apache jclouds,允许云开发人员创建出软件,访问来自主要云供应商以及所需的其他云供应商的资源。但是,这还在开发中,因为没有清晰的规定云供应商应该提供哪些通用服务。

应用程序或者软件即服务API通常是最高层级API,提供完整的应用程序作为本地IT环境的替代品或者扩展。比如,企业可能选择使用客户关系管理软件作为托管服务而不是在本地安装。和该软件交互的工具会使用设计的API来安全地交换数据以及查询。如,想要集成Microsoft office 365功能进自己软件的企业就可以使用Microsoft Graph API。

现在有哪些可用的云计算API?

现在有大量供开发人员可用的云计算API,来创建面向用户的软件。比如,AWS提供API来操作自己的EC2和Simple Storage Service (S3,简单存储服务)服务,以及API门户服务,允许用户创建自定义API来编排一些AWS服务。其他主流公有云供应商,如Google和Microsoft Azure,也提供API将云服务链接到外部软件。

还有一些其他API可以使用来做云项目。如,私有云可能会使用类似Apache CloudStack 4.9.0.1这样的平台来支持IaaS类型的云,还能够原生支持Amazon EC2和S3 API。

API标准化

要帮助用户在任意云平台上部署应用程序——无需变更软件,越来越多的人开始对公有云供应商API的标准化感兴趣。不幸的是,我们离这样的标准化还相当遥远,特别是在主流公有云供应商之间的竞争日益白热化的情况下。

其他云计算API承诺提供更加通用、跨平台的能力。比如,Simple Cloud API是由供应商联盟推进的,它允许开发人员创建可以和多个云供应商交互的代码。

API创建有哪些通用准则?

不管你是开发自己的云计算API,还是评估待选供应商的API,以下一些通用考量可能会有所帮助。

考虑API的效率。API的实现必须简单高效。不要尝试重新创造轮子,比如SOAP、REST、JSON等这些底层技术——使用那些已经实现了的庞大的标准库。另外,不要尝试在一个API里完成所有事情。开发人员倾向于使用有限数量的语言,因此为了迎合每种主流语言都创建一个API版本,这里的主流语言包括C++、Java、 Python、PHP、Ruby、Perl、Haskell、C#、JavaScript、Node.js、OCaml 和 Delphi。

确保良好的API文档。粗糙的文档会成为采用某个供应商API的阻碍,也会阻止别人使用你的API。文档必须最新、精准并且包含一些使用示例或者教程。通过同行评审或者API用户的精准反馈来验证文档。

API必须灵活。开发人员可能会尝试以各种方式使用云计算API,因此这些API必须灵活,特别是如何处理输入和输出上。比如,灵活的API可能支持多种格式,比如JSON、YAML以及可扩展标记语言,并且不区分大小写。

注意API发布的稳定性。API变更的速度和一致性会影响到使用。开发人员使用那些不经常变化的API会更加轻松。发布周期必须计划良好,测试全面并且有完整的文档,同时让开发人员有足够的时间体验beta版本。

注意API安全性。可靠的身份验证和安全对于现代服务以及访问这些服务的云计算API来说至关重要。在大多数情况下,这包括通过API向服务传递SHA-1或者其他加密令牌。在其他情况下,通过OAuth2和SSL保证安全性。API所有者必须实现几种类型的安全。


本文作者:崔婧雯

来源:51CTO

相关文章
|
19天前
|
JSON 数据挖掘 API
1688API最新指南:商品详情接口接入与应用
本指南介绍1688商品详情接口的接入与应用,该接口可获取商品标题、价格、规格、库存等详细信息,适用于电商平台开发、数据分析等场景。接口通过商品唯一标识查询,支持HTTP GET/POST请求,返回JSON格式数据,助力开发者高效利用1688海量商品资源。
|
30天前
|
存储 供应链 监控
1688商品数据实战:API搜索接口开发与供应链分析应用
本文详细介绍了如何通过1688开放API实现商品数据的获取与应用,涵盖接入准备、签名流程、数据解析存储及商业化场景。开发者可完成智能选品、价格监控和供应商评级等功能,同时提供代码示例与问题解决方案,确保法律合规与数据安全。适合企业开发者快速构建供应链管理系统。
|
16天前
|
人工智能 数据可视化 API
开箱即用的可视化AI应用编排工具 Langflow,可调用魔搭免费API作为tool
ModelScope 社区基于优秀的开源可视化AI应用编排工具 Langflow 搭建了创空间,以方便社区开发者基于社区开源模型及免费魔搭 API-Inference,快速创建Agent应用、RAG应用并将其部署为API服务。
158 14
|
1月前
|
安全 Java API
理解Akamai EdgeGrid认证在REST API中的应用
Akamai作为内容分发和云服务的领导者,提供了EdgeGrid平台以提升Web应用的速度、可靠性和安全性。EdgeGrid认证(Auth)通过基于令牌的安全机制,利用HMAC-SHA256签名、时间戳和Nonce确保API请求的合法性与唯一性。文章详细介绍了在Python、Java和Go语言中实现EdgeGrid认证的方法,并探讨了如何使用Apipost、Postman和curl工具进行测试。这一认证机制是保障与Akamai REST API安全交互的关键,助力开发者构建更安全高效的数字平台。
|
2月前
|
数据采集 搜索推荐 API
小红书笔记详情 API 接口的开发、应用与收益
小红书(RED)作为国内领先的生活方式分享平台,汇聚了大量用户生成内容(UGC),尤其是“种草”笔记。小红书笔记详情API接口为开发者提供了获取笔记详细信息的强大工具,包括标题、内容、图片、点赞数等。通过注册开放平台账号、申请API权限并调用接口,开发者可以构建内容分析工具、笔记推荐系统、数据爬虫等应用,提升用户体验和运营效率,创造新的商业模式。本文详细介绍API的开发流程、应用场景及潜在收益,并附上Python代码示例。
320 62
|
19天前
|
JSON API 开发者
京东API最新指南:商品视频接口接入与应用
在电商领域,商品视频能有效提升销售业绩。京东商品视频接口助力开发者获取商品视频信息(播放链接、时长、格式、封面图等),通过 HTTP GET/POST 请求返回 JSON 数据,便于集成到各类应用中,优化展示效果与用户体验。本指南详解接口接入与使用方法。
|
1月前
|
XML JSON API
理解API:应用程序之间的桥梁
API(应用程序编程接口)是一组规则和协议,允许不同软件应用相互通信。它如同餐厅的服务员,传递请求与响应。API促进应用集成、自动化任务并激发创新,如旅游网站通过API整合航班、支付和酒店信息。常见的API类型包括Web API、库API和操作系统API。API通过端点接收请求并返回数据,通常以JSON或XML格式,确保应用间顺畅协作。API是现代软件开发的幕后英雄,使数字生活更加便捷和互联。
|
1月前
|
JavaScript 前端开发 API
JavaScript中通过array.map()实现数据转换、创建派生数组、异步数据流处理、复杂API请求、DOM操作、搜索和过滤等,array.map()的使用详解(附实际应用代码)
array.map()可以用来数据转换、创建派生数组、应用函数、链式调用、异步数据流处理、复杂API请求梳理、提供DOM操作、用来搜索和过滤等,比for好用太多了,主要是写法简单,并且非常直观,并且能提升代码的可读性,也就提升了Long Term代码的可维护性。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
1月前
|
JSON API 开发者
1688 快递费用 API 接口的技术剖析与应用
1688快递费用API接口为企业和开发者提供自动化、高效化的快递费用查询服务,打破人工查询的繁琐局面。通过输入寄件与收件地址、商品重量、体积及选择快递公司等信息,接口精准计算费用并返回结果,支持中通、圆通等主流快递。输出内容包括快递费用、预估时效及附加费说明,助力电商精细化运营。Python示例代码展示了如何使用requests库发起POST请求并解析响应数据,实现费用查询自动化。
98 10
|
1月前
|
机器学习/深度学习 JSON 算法
淘宝拍立淘按图搜索API接口系列的应用与数据解析
淘宝拍立淘按图搜索API接口是阿里巴巴旗下淘宝平台提供的一项基于图像识别技术的创新服务。以下是对该接口系列的应用与数据解析的详细分析

热门文章

最新文章