
在API网关上开放服务时,不少API开放者对于在API网关上怎样配置BODY有些迷茫,导致花费在配置和调试上的时间较多,本文将针对API网关POST方法下,各种情况的Body配置进行详细介绍,希望能减少用户的困惑。 常用的Content-Type 在进行HTTP的POST请求中,需要配置Content-Type指定body的类型。下面以常见的3种进行举例。 Content-type 描述 application/x-www-form-urlencoded 数据被编码为名称/值对,数据以form的形式传输 application/json 表示body是一个JSON数据格式 application/octet-stream 二进制流数据,如常见的文件下载 注:API网关不支持multipart形式进行文件上传。如果有文件上传,需要将文件进行Base64后放到Body中传输,而且Body大小不能超过2M,如果有大于2M的内容,您可以结合OSS工具使用(通过OSS上传文件,API网关只传输地址)。 API Body配置 首先,我们需要知道body应该以什么形式传给后端。下面将分别针对3种类型的content-type进行API网关配置和调用的介绍。 1、application/x-www-form-urlencoded 这种形式表示body以Form形式传输,API网关配置如下: 1、选择Method为POST 2、在入参定义中选择参数位置为“Body”进行配置 调用以postman工具为例 2、application/json 这种形式表示body是JSON格式,一般如果后端是Spring MVC的API,参数需要以该形式传输。在API网关配置时,需要勾选“非Form表单数据,比如JSON字符串、文件二进制数据等”。 可以把body格式放到"Body内容描述"里面,可以自动生成文档。 另外,在下一页“定义API后端服务”部分,需要设置Content-Type值为“application/json”或者“透传客户端”。 调用以postman工具为例 header需要修改Content-Type为“application/json”. 3、application/octet-stream 这种content-type一般用于上传一个文件或者图片。API网关的配置如下: 注意:下一页“定义API后端服务”部分,可以设置Content-Type值为“application/octet-stream”或者“透传客户端”。 调用以postman工具为例: header需要修改Content-Type为“application/octet-stream”. 以上是API网关常见的几种数据类型传输,如果有其他类型,可以参考application/json和application/octet-stream的配置方式。
在API网关开放API服务后,如何保障服务的稳定性,怎么能够实时监控API的情况?及时处理API服务异常,是API开放者关注的重点。本文将主要介绍API网关提供的API监控报警功能,通过简单的配置,即可帮助您实现API的监控报警。 API监控配置页面 登录API网关控制台,进入API管理页面,点击左侧菜单“监控信息”,点击页面中的“报警”按钮,即进入到云监控配置控制台。 创建报警规则 关联资源多维度设置 关联资源指该报警规则应用的资源。在关联报警资源时,可进行多维度配置,有API维度和应用分组维度,和全部资源可选。满足您多样化的配置需求。 API维度 该维度可关联某个Region下的API,您可以手动选择关联一个API或者多个API,不过只能在同一个Region下。 应用分组维度 应用分组是您自己定义的一个分组,在该分组中,您可以同时选择多个产品,如ECS、API网关;在每个产品的配置中,您还可以选择不同Region的资源,作为监控的关联资源。比如API网关产品,您可以配置不同Region下的API,当这个应用分组关联上监控规则后,该分组中的API网关产品下的资源都会被监控。 全部资源 指您账号下的API网关产品中的所有API都做为关联资源。 设置报警规则 API网关提供了HttpStatusCode,API响应时间,API总体请求次数,流入流量,流出流量 五个维度的规则;您可以就这几个方面,配置您关心的报警。 比如HttpStatusCode,有Code2XX,Code4XX,Code5XX可选, Code2XX:表示API请求成功。(注意:此处并非一定是业务成功) Code4XX:表示客户端错误,可能是参数错误等。 Code5XX:表示服务端错误,这个对于API开放者来说,一般需要重点监控。 通知联系人 先创建联系人分组,然后关联上联系人即可。 报警通知
API网关(API Gateway),是阿里云提供API托管服务,涵盖API发布、管理、运维、售卖的全生命周期管理的产品,辅助用户简单、快速、低成本、低风险的实现微服务聚合、前后端分离、系统集成,向合作伙伴、开发者开放功能和数据。下面将介绍API网关的快速接入流程,帮助您快速开放API。 创建分组 API分组指管理API的单元,一般将一套完整功能集合的API归为一个分组。 在特定Region(Region最好和后端服务在同一个Region)下,在API网关控制台菜单中选择“分组管理->创建分组”。 绑定域名 需要为每个分组绑定一个自定义域名,用于访问该分组下的API。 注意:该自定义域名需要先备案。 1、将自定义域名CNAME到分组二级域名上 查看分组二级域名: 2、绑定自定义域名 在分组详情页面点击“绑定域名”,输入自定义域名。 3、绑定证书(HTTPS访问需要) 在分组详情页面对应的自定义域名上添加证书绑定即可。 创建API 创建API是对某个API进行定义的过程,包含协议类型,参数映射,服务地址等。 调试API 调试API主要检测API配置是否正确。检测的是非发布环境的API。 点击"API列表"中的API名称列,进入API详情页面。 点击左侧的“调试API” 发布API 将API定义发布到对应的环境,各个环境相互隔离 每次编辑API定义后,需要重新发布后才生效。 授权给APP APP是调用API的身份,调用前,需要先创建APP(菜单 调用API->应用管理),然后将某个环境的API授权给对应的APP,就可以用这个APP下的key和secret发起调用。 授权页面: 授权后,即可通过SDK调用API。 辅助链接 Http协议详解(仅供参考) API网关产品帮助文档 SDK 下载
API可谓扮演了“技术胶水”的角色,能帮助企业内外进行不同业务逻辑和不同数据的连接和整合,API市场正逐步形成一个新的生态系统,对于调用者来说,能快速整合不同服务到自己的产品中,快速丰富产品功能;对提供者而言,能通过API将自己的服务,专业能力和专业数据变现。下面将介绍如何通过API网关变现你的API。 提供多端服务 API网关,能提供高性能、高可用的API托管服务,帮助用户开放部署在ECS、容器服务等阿里云产品上的服务,用户仅需实现自己的核心业务逻辑,提供自己的核心数据服务,并以API的形式通过API网关暴露出来,就能面向不同的用户群体:物联网,移动用户,WEB用户等等,一套后端服务,面向多端用户,扩展了服务的调用范围。 API售卖 在API网关开放API服务以后,可对接到API市场中,成为API服务商,通过API市场售卖自己的API服务,让自己的专业技术和专业数据达到变现的能力。目前阿里云云市场提供了API市场,供API服务商售卖API服务,服务商还可利用云市场的用户体量,增强API的变现能力,扩大API影响力。 API收费模式 API售卖中,不同的API可采用不同的收费模式,API服务商可根据API的特点组合不同的收费模式和收费维度。如:按次数打包售卖的API,和按流量的后付费API。下面是收费模式和收费维度: 收费模式: 预付费 调用者通过购买行为,享受API服务,一旦购买服务用光后,可通过再次购买或续费,继续享有API服务调用服务。 有按次数打包购买、包年包月类型。 后付费 根据调用者实际调用引起的花费,扣除调用者账户余额,调用者可通过充值享用API调用服务。 收费维度: 调用次数 根据API调用次数收费,适合功能型API,如:身份验证API 流量 根据入或出网的流量收费,适合内容型API,如:翻译API 相关链接 API网关使用手册 数据市场API接入指南
API使软件之间的通讯更加便捷,使得基于软件支撑的商业模式得以落地,如移动支付,从而促进API经济的繁荣。现在开放API服务已经成为软件服务的主要趋势,对于API提供者而言,API服务的安全性则是需要重点考虑的。但互联网上的攻击,或者某次促销导致流量暴增,超出服务承受能力的情况无可避免,在这种情况下,怎么保护后端服务不受影响,服务不被中断? API网关在设计之初,就重点考虑了安全性的问题,流控作为API网关的主要功能,能从API分组、API、用户、APP四个维度进行流量控制,当流量超过设置阈值时,API网关会直接返回错误信息(错误码403,有明确的因流控被拒的错误信息)给请求者,不会再继续调用API提供者的后端服务,从而保护了后端服务不被攻击。同时我们还具有精准流控,实时生效的特点。 API分组流控 每个API分组在建立的时候,默认设置了分组的QPS为500,指该分组下所有API的QPS之和为500,目前该值没有开放给用户编辑,如果该值不能满足你的业务情况,请通过提交工单的方式联系我们修改。 API流控设置 API流控用于通道内的业务分层,API提供者可以根据后端服务能力和业务的重要程度来区分API,可分别设置不同的流量控制,以保证重要业务的延续性。API流控须小于分组流控。 用户流控用于在API上的用户分层,API提供者可以为普通用户设置流量控制,防止用户间相互挤占资源。用户流控须小于API流控。 同理,APP流控类似。APP流控须小于用户流控。 具体操作方法如下: 1、建立流控策略 API流量控制指单位时间内的调用次数控制 单位时间:目前支持分钟、小时、天三个粒度的流量控制。 分钟:适合配置在调用频繁,请求量大的API上,防攻击,因为不能长时间中断调用,所以单位时间不能设置太长。 小时、天:级别的适合配置在敏感型API上,比如发短信API,获取验证码API等,限制调用频率。 2、设置特殊流控策略 上面的流控是针对普通用户设置的默认流控,如果还有例外的情况,我们支持给用户和APP设置特殊流控。特殊流控,主要用于对用户或APP分层,API提供者可以设置API上某个用户(或某个APP)的单独流控,可以大于或小于用户流控。 在“流控管理”详情页面可分别添加“特殊应用”和“特殊阿里云用户”的流控。 3、绑定API 将策略绑定到API上,即可生效。针对不同环境的API(如测试、线上),可分别绑定不同的API策略。