-
API的概念定义API(Application Programming Interface)是一些预先定义的函数,或指软件系统不同组成部分衔接的约定。也可以理解为是两个应用程序之间通信的机制,或者使用一组规则和协议的组件或计算机硬件。目的提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源代码,或理解内部工作机制的细节。使用API被编写并使用在以下几个地方: 基于web的应用程序 电脑操作系统 数据库系统 计算机硬件 软件库
-
wiki 百科镇楼…[APIs are] a set of subroutine definitions, protocols, and tools for building application software. In general terms, it’s a set of clearly defined methods of communication between various software components.翻译:API 是用于构建应用程序软件的一组子程序定义,协议和工具。一般来说,这是一套明确定义的各种软件组件之间的通信方法。(回来再看(。・∀・)ノ)。本篇文章中,我会用浅显的比喻来解释API,接口(interface),协议(protocol)这些基本概念。enjoy it ! 假设你有一个银行 你有一个仓库来存钱,一个记账本来记各种业务。一个简单的管理银行的方法是直接将权限给所有人,让客户自己动手完成各种业务。这种模式下,一个客户想要存钱的话,他需要:拿着钱去银行打开仓库把钱放进去把这笔业务写到记帐本上离开银行显然这存在着问题:想开开仓库门需要废很大力气,并不是所有的人都能打开,还有些人不识字不会记账。在这个模式下,我们假定所有人都是诚实的,显然这并不成立。(说不定哪一个人存了100块钱记账的时候写了10000块)。这时你遇到麻烦了。雇一个柜员要是我们雇一个体格棒,办事还麻利的人来处理开仓库,记账的问题呢?小娜登场了。现在模式为:建一个柜台将仓库和记账本和顾客分开,这样顾客就不需要再去管仓库和记账本了。想存钱的话直接找小娜就行。这种模式下,要是有人想存钱,他们必须:拿钱去银行告诉小娜我是 MMM 我想要存¥¥¥。小娜打开仓库把钱放进去小娜把业务(transaction )记录好告诉你业务办好了顾客离开银行现在不会发生打不开仓库门或者是记错账的情况了,你觉得很满意。到此我们引出今天的主角API( Application Programming Interface),它能够帮你实现轻松的和其他软件组件(如服务器,操作系统等)的交互。在上面举的例子中,我们雇一个收纳员帮顾客解决了开仓门,放钱,记账这一系列繁琐的过程。这大大节省了顾客的时间,同时提高了银行的效率。同理,如果我们将操作的具体实施步骤抽象化,这将会大大降低开发人员的负担(去记忆所有的步骤花费的力气),从而大大提高了效率。另外的好处是,只要他们遵循了同一个协议,组件可以交换或者是改变。银行不需要知道时哪一个顾客或者说顾客是怎么进来的,顾客也不需要知道银行拿自己的钱去做什么了。只要负责的柜员在这里并做好工作,整个流程将会继续工作。API 应用范围很广:从操作系统中简单的 fork() 到我们接触的百度地图API,和风天气API,又或者是邢远分享的段子,这些 API 都大大简化了程序员的工作。银行里有什么你可能已经注意到了银行分成了两个区域:顾客在前台排好队来办理业务,后台完成各种对钱的操作。在中间层,前台和后台发生了交互, 双方都不能越界 ,交互只能发生在中间的区域。在 API 术语里面,我们管中间的这块区域叫做接口 Interface ;在这里各个部分发生交互。在我们的银行中,前台和后台都同意并且规定使用 Interface 来交换信息。现在,我们假定 Bob 想要取钱。他到了柜台找到了小娜,小娜知道该怎样去取钱,她取好了之后告诉了 Bob。Bob 这时候又问:“你知道今天的股票行情吗”小娜:????WTF ?在这个例子里面,小娜知道怎样取钱和存钱 , 但是她不知道如何去给Bob查查今天的股票行情是怎样的。这个例子引出了另一个概念 协议(Protocol)。在 API 术语中,协议 是规定了各部分之间如何进行交流的一系列规则的集合。各部分之间想要完成交互必须理解并且遵守同一个协议。同时,我们注意到了交换时用的是中文。如果Bob 对小娜说「我想撳五百蚊出嚟呀唔該」,小娜不懂广东话,所以没法理解Bob说的是什么,这又引出了另一个概念 格式(Format)在程序员的世界里,通用的格式包含 XML 和 JSON。最后,让我们假设银行想要扩展业务到股市,这时候就需要一位特殊的接待员来处理与股票相关的业务了,这时,小冰就登场啦。在 API 术语里面, API 端点 通常是指在同一个接口中提供特定功能子集的服务提供者。在这种情况下,小冰和小娜都是端点。(小冰和小娜是同一个柜台不同功能的提供者)不同的端点可以有不同的协议和不同的格式。总结起来:接口是不同组件进行交互的地方。协议是一系列规定了他们之间怎样进行交互的规则。格式定义了他们通过什么进行交流(JSON或者是XML),端点可以在同一个接口里面提供不同的功能。柜员还能干什么?到现在我们把 API 的基础知识过了一遍,接下来我们再来谈一谈 API 的其他特征。w(゚Д゚)w现在又有客户来取钱了,他想要取¥10000。首先,我们可以指示小娜在操作前先去确认一下 Bob 是否真的有这么多钱。(API 能确认所有的操作都是合法的。)小娜查到 Bob 账户里只有一百块了,告诉 Bob 余额不足。(在发生错误的时候 API 会根据错误报告机制发出指示,减轻开发人员的负担。)Bob 认为肯定是哪里出错了,他要求银行给他列一张表,给出他所拥有的每个账户上的余额。结果显示一共有 200 个账户。把他们一下子全给列出来不太实际,所以小娜每次给 Bob 看十个账户,看完了之后再来十个。(这叫做分页(pagination),可以节省带宽和服务器资源,因为你不需要一次获取数据集中的所有内容。)如果 Bob 只想要知道他某一个账户中的余额的话,他可以要求小娜只给她看那个的(这称为过滤(filtering),它还有助于节省带宽和资源,并且更易于导航。)在检查完所有账户之后,鲍勃现在知道他的帐户中确实没有10000美元。他知道爱丽丝购买股票并获得了大量资金,于是伪装成爱丽丝并重新进入银行。他告诉莎莉:“我是爱丽丝,我想从我的账户中提取10000美元。” 小娜识破了他的骗局。(API中内置授权和访问控制,以确保只有授权人员才能访问特定数据。)最后,在试图从银行拿到10000美元失败后,他想报复小娜,他进入银行并多次从账户中提取0.01美元。 (我们可以实施速率限制来控制服务器资源的使用,以确保用户不会滥用服务。)API 通常都会被设计具有这些功能,它可以充当防火墙,在保护您的资源免受滥用的同时允许合法请求通过。
-
注意区分裸金属实例(instance)和裸金属节点(node)的区别。1、裸金属节点相关的操作,主要看ironic日志。包括扩容、格式化、维护模式等1)ironic日志主要为ironic-conductor日志,裸机节点的相关操作都可以先看ironic-conductor日志。ironic-conductor组件主主部署在3个控制节点上,日志可能在任意一个,所以需要依次查看,根据node_id或操作时间关键信息查询。执行命令:cps template-instance-list --service ironic ironic-conductor日志路径:/var/log/fusionsphere/component/ironic-conductor/2)ironic服务还有ironic-api(主主)、ironic-provision(主备)、ironic-console-proxy(主备)、ironic-haproxy(主备)组件,日志查看方法同ironic-conductor,注意主备部署的组件需要查看active节点的日志。日志路径:/var/log/fusionsphere/component/{$componet_name} ,替换路径中的组件名称即可。2. 裸金属实例相关的操作,主要看nova-compute-ironic日志。包括实例下发、挂卸卷、挂卸网卡等nova-compute-ironic组件主备部署在两个控制节点上。多az场景,组件名称可能是nova-compute-ironic00x1)获取裸金属实例对应的nova-compute-ironic组件,执行:nova aggregate-list |grep {az_id} 获取裸金属az对应主机组idnova aggregate-details {aggregate_id} Hosts中,baremetal-ironic00x就对应nova-compute-ironic00x如下图:bms.x86对应nova-compute-ironic;bms.arm对应nova-compute-ironic0012)查看nova-compute-ironic日志,此处以nova-compute-ironic001举例,实际查看日志是要替换成裸金属实例对应的nova-compute-ironic组件名称。cps template-instance-list --service ironic nova-compute-ironic001登录到active组件所在的节点,查看nova-compute-ironic001日志日志路径:/var/log/fusionsphere/component/nova-compute-ironic00x3)vim nova-compute-ironic001_error.log 打开error日志,Shift+G快捷键直接到文件结尾,查看错误信息。3. minios的ironic-python-agent(ipa)日志裸机需要pxe的操作(扩容、格式化、实例下发),如果pxe成功进入了minios,但是对应操作失败了,首先查看ironic-conductor日志,当ironic-conductor的日志无法定位时,需要查看ipa日志。ipa日志在远端裸金属服务器上,且minios是内存OS,需要通过服务器的串口重定向功能,实时打印日志进行保存收集。1)控制节点执行:ipmitool -I lanplus -H {bmc_ip} -U {bmc_username} -P {bmc_passwd} sol activate 替换bmc_ip、bmc_username、bmc_passwd为对应裸机节点的bmc信息。2)通过远程登录工具记录日志,以Xshell为例,打开Xshell的日志记录功能,如下图。3)触发对应的操作,裸金属上电后,开机自检、pxe过程、minios启动、ipa运行等日志都会回显到命令结果里,Xshell也会记录。日志收集完后,Xshell停止日志记录,保存到本地文本文件查看。4、BMS的组合api日志1) 获取组合api节点IP登陆控制节点,导入环境变量后执行:nova list |grep CPT-SRV如下图,最后一列中的IP即为两个组合api节点的IP2) 登录apicom两个节点根据job id 或者虚拟机名称查找日志/var/log/apicom/taskmgr/bms/taskmgr_ecm_api.log/var/log/apicom/taskmgr/bms/taskmgr_ecm_executor.log3) 组合api两个节点是双主,根据裸金属服务器实例的名字查找本次发放的日志落到了哪个节点上cd /var/log/apicom/taskmgr/bms/;grep $bms_name *能查询到裸金属服务器名字的apicom节点处理了本地发放请求,在本节点查看apicom日志。4)vim taskmgr_ecm_executor.log;搜索裸金属实例名字,其中一行有“Create single server [$bms_name]“,本行末尾会有apicom的create bms 子jobID,再次搜索这个子 jobID,查看查询到的所有日志里的ERROR信息。(建议使用vim替换vi命令打开日志,搜索内容可以高亮显示)。根据ERROR信息分析失败原因。5) 如果executor日志中没有内容,vim taskmgr_ecm_api.log,查找发放时间点附近的error日志。当SC的订单里显示的失败原因为参数错误是,原因可以在taskmgr_ecm_api.log查找。5. ironic常用命令ironic node-list 查看裸金属服务器列表。第一列为node_id,第二列node_name,第三列node节点上的instance_id。ironic node-show $node_id 查看裸金属服务器详情ironic node-set-maintenance $node_id true/false 设置裸金属服务器维护态/非维护态。维护模式时表示裸金属服务器暂时脱离ironic管理,可以用于调试或硬件更换ironic node-set-provision-state $node_id deleted 恢复error状态的裸金属服务器ironic node-set-provision-state $node_id abort 中止正在格式化的裸金属服务器,会成为clean failed状态 ironic node-set-provision-state $node_id manageironic node-set-provision-state $node_id provide manage+provide会重新clean 裸金属服务器。neutron port-list --network-id `neutron net-show provision |grep "\bid\b" |awk -F"|" '{print $3}'` 查看provision网络port列表neutron net-show provision 查看provision网络配置
-
【问题现象】使用官网提供的API调试工具(https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=IoTDA&api=ListProperties)进行应用侧命令调试,查询设备属性发现报错,填的id等信息均准确,报错原因为命令超时,检查设备发现数据上报正常,报错文档说是要去确认设备是否收到平台的请求并订阅正确的topic且回复正确的响应给平台,未能理解是什么意思,还望解答解决办法。【截图信息】
-
【功能模块】ROMA【操作步骤&问题现象】环境信息:集成环境问题现象:测试分离消息API连接192.168.9.58:8546超时 正常现象:{ "retCode": "0", "retJSON": { "result": "success+object" } }复制步骤:1、创建API_03_Separate 2、开发分离消息API。 3、测试分离消息API出现异常租户账号:Hi-teamsunzhxiaofang 【截图信息】【日志信息】(可选,上传日志内容或者附件){ "sourceId":"0b3481df-ca58-4a60-a72e-f8395f1189dc", "async":false, "hosts":{ "https://192.168.9.58:8546":{ "body":"Connect to 192.168.9.58:8546 [/192.168.9.58] failed: Read timed out", "oK":false, "statusCode":-1 }, "https://192.168.9.116:8546":{ "body":"Connect to 192.168.9.116:8546 [/192.168.9.116] failed: Read timed out", "oK":false, "statusCode":-1 } }, "source":"livedata", "taskId":"task202104159b6c564f0c1a422f995ec81639efe92b"}
-
【功能模块】ROMA【操作步骤&问题现象】环境信息:集成环境问题现象:测试分离消息API连接192.168.9.58:8546超时 正常现象:{ "retCode": "0", "retJSON": { "result": "success+object" } }复制步骤:1、创建API_03_Separate 2、开发分离消息API。 3、测试分离消息API出现异常租户账号:Hi-teamsunzhxiaofang 【截图信息】【日志信息】(可选,上传日志内容或者附件){ "sourceId":"0b3481df-ca58-4a60-a72e-f8395f1189dc", "async":false, "hosts":{ "https://192.168.9.58:8546":{ "body":"Connect to 192.168.9.58:8546 [/192.168.9.58] failed: Read timed out", "oK":false, "statusCode":-1 }, "https://192.168.9.116:8546":{ "body":"Connect to 192.168.9.116:8546 [/192.168.9.116] failed: Read timed out", "oK":false, "statusCode":-1 } }, "source":"livedata", "taskId":"task202104159b6c564f0c1a422f995ec81639efe92b"}
-
传送门>>>点击进入活动主页【直播主题和时间】 数仓“索引”的正确打开姿势 2021年4月15日20:00-21:00(互动时间截止4月30日哦)【活动介绍】 本期DevRun开发者沙龙直播活动,我们邀请了华为云数仓GaussDB(DWS)资深存储引擎专家虫虫,携手内核研发工程师小小酥带来【数仓“索引“的正确打开姿势】,来为大家揭开分布式数仓索引的神秘面纱,实践原理相结合,让您摆脱还停留在只会SQL简单调优处境的尴尬,利用好索引这把武器,结合存储提供的多种调优手段,玩转数仓GaussDB(DWS)!本场直播不仅课程精彩,参与论坛&直播互动、报名观看直播,移动电源、蓝牙音箱、折叠背包、PVC袋多重好礼等你来拿,更有机会抽取价值3500元的DWS免费试用机会哦!!!活动即刻开启,凡在本主题帖中留言、参与直播或论坛互动的用户均可参与抽奖哦~【直播入口】点击下方链接进入直播间直播间链接:https://bbs.huaweicloud.com/live/DevRun_live/202104152000.html点此>>点此报名,直播不迷路(直播过程中3轮抽奖,不容错过哦~)参与方式:(互动、留言、报名直播、观看直播、分享等多种互动方式)传送门>>>点击进入活动主页互动(互动一定要点击链接前往主题帖,本帖回复无效!!!)备注:微信扫描下方二维码添加GaussDB(DWS)小助手微信号,回复“进群”加入专家交流群(最新的学习资源也会跟您一起分享哦) 【获奖方式】1、幸运互动奖(10名)参与方式: 以上互动方式任选一种或多种参与。奖 品:华为云定制折叠背包评奖规则:参与华为云社区互动或直播互动即有机会抽取。(奖品随机)2、优秀评论奖(3名)参与方式:直播评论或者跟帖留言用户中选出3名优秀评论奖。奖 励:华为nova mini蓝牙音箱(颜色随机)评奖规则:参与华为云社区留言或直播评论即有机会抽取3名优秀评论奖。留言示例:直播主题相关问题、测试截图、技术难点、平台建议、活动建议…3、价值3500元DWS免费试用获奖人数:5名奖 励:华为云GaussDB(DWS)包月免费试用评奖规则:1、报名观看直播,并在微信公众号后台回复“免费试用”;2、根据后台提示填写调查问卷申请GaussDB(DWS)免费试用;3、根据问卷调查抽取免费试用用户;提醒:免费试用时长为一个月,试用期结束后,集群未删除会产生欠费,强烈建议费用快结束的时候删除集群,否则费用将由用户自己承担。4、金石奖(3名)参与方式:观看直播、在本论坛发帖直播观后感、技术文章参与抽奖。奖 励:华为10000mAh移动电源评奖规则:1、与直播主题相关 2、有一定技术干货 3、将博文链接作为回帖,活动结束后,会有工作人员从活动评论区投稿文章中,评选出优秀博文。【参与发帖互动示例】(可参考以下内容任选一个或多个进行互动)1.发表直播观后感2.发表技术博文:包括但不限于干货分享、开发技能、避坑指南、案例实践…回帖示例:【DWS 4.15直播观后感】+XXX(博文标题)5、粉丝福利奖(10名)参与方式:参与活动分享,从反馈活动分享截图的微信公众号粉丝中抽取。奖 励:华为云开发者彩色PVC袋子评奖规则:活动结束后从反馈活动分享截图的微信公众号粉丝中抽取。6.神秘礼物评奖规则:直播间进行抽奖,奖励随机放送,不可错过哦!【注意事项】1.每个ID只能参与一次评选,同一ID不可重复中奖。2.不能冒用他人截图,否则将取消该奖励。3.本次回帖内容需满足华为云论坛发帖规范https://bbs.huaweicloud.com/forum/thread-23077-1-1.html4.分享互动的用户未通过公众号后台反馈朋友圈截图,视为无效参与。5.“粉丝福利”活动结束后获奖人员将在公众号公示。6.本活动最终解释权归华为云数仓GaussDB(DWS)所有。小伙伴们,还在等什么,快快参与互动&报名直播赢好礼吧!!!扫码关注我哦,我在这里↓↓↓传送门>>>点击进入活动主页互动
-
求教一个问题,在华为云Stack 扩容指南中,管理规模梯度中有个API并发数的指标,如下图。请问一下,这个API并发数具体是指什么API,怎么判断并发数量?谢谢。
-
以下API接口调用成功返回码是200的是?鉴权接口注册直连设备接口 不正确修改设备信息接口这一题的正确答案应该是多少呢?怎么解题呢?另外,明天要去考HCIA-IOT是2.0的,这个和最新的2.5的区别大吗?最近看的是2.5搞活动的那些课程...
-
https://support.huaweicloud.com/devg-apig/apig-dev-180307016.html参考上面API调用demo 通过AK/SK访问 云龙网管接口 返回如下异常是什么原因?200 {"status":"failed","message":"Exception happened","result":null}
-
【功能模块】ROMA - livedata-api【操作步骤&问题现象】1、新建一个api,然后进入开发,三行代码2、2021-04-07测试api是正常的3,但是今天2021-04-08日测试,就roma内部返回500,感觉出不去了,{"requestId":"dae8f7184ad46bcf2bfb2eaa91e2469798e1846031bed947f2419231941e7aba","retCode":"500","retJSON":{"result":{"errMsg":"java.io.IOException: Cannot handshake with server"}}}, 实际上,这个地址,通过postman测试 一直是正常的【截图信息】【日志信息】(可选,上传日志内容或者附件)
-
即时元数据API是所有云计算提供商提供的特定功能。没有错误或漏洞利用,但鉴于它不存在于本地数据中心,它通常不能得到妥善保护或监控。攻击者可能以两种可能的方式利用它。首先是易受攻击的反向代理。反向代理在公共云环境中很常见,并且可以通过某人可以设置主机来调用即时元数据API并获取凭据的方式进行配置。如果有人在云环境中启动代理,则可以通过以下方式对其进行配置:如果其中一个云计算实例通过该反向代理访问全球互联网,则可以存储这些凭据。“如果某人没有正确设置该特定实例的访问凭证的权限,他们可以做任何权限授予该实例的任何内容第二种方式是通过恶意Docker镜像。开发人员通过DockerHub共享Docker镜像,但易用性导致了**任可能利用恶意命令来提取访问密钥的图像的行为。网络攻击可能会从受感染的容器扩展到攻击者访问公共云帐户。“这是一个很棒的功能,但你必须知道如何处理它,Chiodi建议监控云中的用户行为,并在颁发凭证时遵循最小权限原则。
-
【功能模块】ROMA-Livedata函数开发【操作步骤&问题现象】有一个第三方平台的公网地址,我们通过ROMA的livedata的函数api可以获取到对方接口返回的json串。livedata的函数api,可否能在一个livedata中完成一个api脚本开发,既调用第三方的接口获取的json串,再直接完成json解析,存入数据库表。具体该如何操作?【截图信息】
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第三期2026/08/21 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;念擎-华为云AI开发者运营案例开发专家
本期直播内容:AI六层能力首次详细解读 + 新一代华为云开发者空间亮相 + 校园案例直播带练
回顾中
热门标签