问题描述 使用APIM,在 Inbound 中对请求的Body内容进行解析.客户端请求所传递的Request Body为XML格式,需要从Request Body中解析出多个(Element)节点值,然后设置通过(set-variable)为参数在后续使用. 但是验证发现,当且只当使用一个set-variable 从 Request Body中读取数据时候,是可以成功的.如果要读取第二个,第三个时,始终会遇见一个诡异的错误 Expression evaluation failed. Object…
在开发Azure Sphere应用时,如果出现项目无法编译,出现“Object reference not set to an instance of an object”时,必须从下面两个方面进行检查. 1. 检查Visual Studio 2017安装时,是否安装了Desktop Development with C++组件,另外,是否选中了"Visual C++ tools for CMake and Linux" 和 "Embedded and IoT Develop…
问题描述 使用 Azure 虚拟网络,Azure APIM 可以管理无法通过 Internet 访问的 API,达到以保护企业内部的后端API的目的.在虚拟网络中,启用网络安全组(NSG:Network Security Group)来控制出站,入站的端口,我们可以形象的把它比喻成一道门,需要满足条件的流量才能通过这道安全的大门. 通过安全大门以后,我们就需要有路,才能达到目的.而默认的网络路径由Azure的骨干网络控制,如果需要通过公司自己的防火墙(Azure Firewall或企业自己的防火…
问题描述 在APIM中配置对传入的Token进行预验证,确保传入后端被保护的API的Authorization信息正确有效,可以使用validate-jwt策略.validate-jwt 策略强制要求从指定 HTTP 标头或指定查询参数提取的 JSON Web 令牌 (JWT) 必须存在且有效.validate-jwt 策略支持 HS256 和 RS256 签名算法. 对于 HS256,必须在策略中以 base64 编码形式提供内联方式的密钥. 对于 RS256,密钥可以通过 Open ID 配…
在文章"从微信小程序访问APIM出现200空响应的问题中发现CORS的属性[terminate-unmatched-request]功能"中分析了CORS返回空200的问题后,进一步对APIM的CORS策略进行验证,深入学习<CORS 跨域资源共享>. 首先,我们已经学习到CORS需要浏览器和服务器同时支持.目前,所有浏览器都支持该功能,整个CORS通信过程,都是浏览器自动完成,不需要用户参与.而服务端则不同,它是实现CORS通信的关键.只要服务器实现了CORS接口,就可以…
问题描述 根据文档 https://docs.azure.cn/zh-cn/api-management/api-management-howto-log-event-hubs, 可以将Azure API Management中的请求记录到Azure 事件中心.文档中有详细的步骤描述.但是在对于如何创建APIM的Logger, 如何在API中配置策略描述非常不清楚,所以本文就补充如何创建Logger及在APIM的API中添加log-to-eventhub 策略. 前提条件 创建 Azure 事件…
问题描述 在APIM中,通过门户上的 Test 功能,可以非常容易的查看请求的Trace信息,帮助调试 API 对各种Policy,在Inbound,Backend, Outbound部分的耗时问题,对其进行错误消息的排查. 但是,当调用APIM 请求遇见错误,且不容易通过门户Test复现,需要在真实的请求中添加Trace,如何实现呢? 问题解答 问题的关键在于调用APIM请求时,Request Header 中必须包含的参数 Ocp-Apim-Trace, 并设置值为True.需要注意的是Oc…
问题描述 使用微软API管理服务(Azure API Management),简称APIM. 因为公司策略要求只能内部网络访问,所以启用了VNET集成.集成方式见: (在内部模式下使用 Azure API 管理连接到虚拟网络:https://docs.azure.cn/zh-cn/api-management/api-management-using-with-internal-vnet?tabs=stv1) 当APIM配置好后,直接通过CURL命令访问APIM的网关接口(如:curl http…
问题描述 为APIM添加AAD Group时候,等待很长很长的时间,结果添加失败.错误消息为: Write Groups ValidationError :Failed to query Azure Active Directory graph due to error: An error occurred while processing this request. 有什么办法可以成功为APIM添加AAD Group呢? 问题分析 查阅官方文档(https://docs.azure.cn/zh…
问题描述 APIM中的内容(API, Policy)等内容,如果有需要更新时候,通常可以在Azure APIM门户上操作,通过一个接口一个设置的修改,也可以针对一个接口导入/导出的方式修改.当APIM中的API成数量级上升后,这样的操作方式就变得很慢很没有效率,是否有更高效得方式呢? 以上两种方式都适合少量修改的情况.如果是APIM中大量API都需要修改呢? 问题解答 有的,因为APIM可以使用 Git 管理服务实例配置,实现批量更改.参考的官方文档为:https://docs.azure.cn…
API 管理 (APIM) 是一种为现有后端服务创建一致且现代化的 API 网关的方法. 问题描述 在设置了APIM客户端证书,用户保护后端API,让请求更安全. 但是,最近发现使用客户端证书的API全部出现错误,无法收到客户端证书,通过浏览器中查看,发现证书也是无效的. 在API请求的Trace中,错误消息为: { "source": "client-certificate-handler", "timestamp": "2021-0…
问题描述 使用微信小程序调用APIM(API Management)中的接口,发现POST和PUT请求被拦截,返回的状态码为200,但是无消息内容. 在小程序中的调用JS代码如: 通过浏览器测试得到的响应体为: 如上图所见,微信小程序中发出的POST请求Status Code为200 OK,但Response Length为0.由于在模拟器(Chrome浏览器模拟)并没有如正常的CORS域名一样报错消息,所以无法明确知道是什么情况导致这一问题. 附:正常的CORS报错信息为: Access to…
问题描述 在通过REST API的方式来管理APIM资源,需要调用Azure提供的management接口.而这所有的接口,都是需要有Token并且还需要正确的Token.如若不然,就会获取到如下的错误: { "error": { "code": "AuthenticationFailed", "message": "Authentication failed. The 'Authorization' header…
我们一定遇到过这种情况,在读取xml里的文章内容时,一旦有换行的位置在flash里显示出来的行间距会比较大,而并非我们想要的效果,解决这个问题的方法除了使用正则表达式以外,这里介绍一种比较简单的方法,利用str.split("\r\n").join("\r")方法即可,如下示例: package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFiel…
因客户GIS软件需求,将应用降级到低版本ArcGIS9.3,不仅数据有些样式.配色.字符有些问题,API也要相应“降级”,解决如下: 利用9.3+flex做QueryTask时候出现了[RPC Fault faultString="Error #2032: 流错误]的错误,原因如下: 在ArcGIS 9.3.1的环境下,初始化QueryTask时,需要将UseAMF设为false: 在ArcGIS 10及以后的版本中,将UseAMF设为true,这样能够很大程度上的提高Flex的数据传输速度:…
客户端代码 string path = "C:\\text.txt"; WebClient client = new WebClient(); Uri _address = new Uri(_baseAddress, "/api/Basedata/UploadDat/"); client.Headers.Add("Content-Type", "application/x-www-form-urlencoded");//长度…
问题描述 通过APIM门户或者是Developer门户,我们可以通过Test功能测试某一个接口,通过Trace可以获取非常详细的Request,Response的信息,包含Header,X-Forward-To,及Respnse的信息.但是,当我们正式使用时,确无法得到这些信息.APIM门户及日志中都没有保存请求中携带的客户数据,这样在调查有些错误与请求携带的参数相关时候,则非常难以排查. 问题原因 对于APIM的请求中的Header,Body等信息,都是用户数据,平台针对此类敏感数据,为了规避…
问题描述 Azure 的APIM集成虚拟网络有两种方式,外部VNET, 内部VNET. 外部VNET,要求低,可以通过APIM访问VNET中的VM等资源,不需要配置自定义DNS服务器,这种方式下,APIM没有内部的私有IP. 内部VNET,要求多,需要自定义DNS服务器,并且外部不能访问APIM的接口,只能在VNET的资源(如VM)中访问.必须在DNS 服务器中配置A记录,指定访问到为APIM分配的内网IP地址. 而在配置内部VNET的时候,需要先准备好: VM (Azure 中虚拟机,用于作为…
随着信息化飞速增长的还有各信息系统中的应用接口( API ),API 作为信息系统内部及不同信息系统之间进行数据传输的渠道,其数量随着软件系统的不断庞大而呈指数型增长,如何管理这些 API 已经在业界变得越来越重要,需要将 API 开发的敏捷性.速度和效率提升到了全新的水平. API管理 很多人认为,API 的管理无非是对 API 信息的管理,只要将 API 记录在 Word 或 Wiki 文档就足够了,这其实是一种想当然的想法.根据实际经验,这些文档随着时间的推移,缺少维护,而逐渐变成了最初工…
通过本文你将了解: 什么是Azure Service Management REST API 如何获取微软Azure 订阅号 如何获取Azure管理证书 如何调用Azure Service Management REST API 什么是Azure Service Management REST API Azure Service Management REST API(之后简称为Azure REST API)是微软开放的一组REST API,它使得Azure用户不仅可以从Azure门户网站上对运…
问题描述 在使用API Management来进行API管理时,当我们后端的API DNS IP地址发生改变或者是API的域名发生改变后,通过APIM请求访问的还是是旧的域名或者IP地址,这是因APIM中对DNS的缓存导致问题. 问题分析 APIM本质也是部署在VM中的应用,对DNS的处理完全依照VM的机制,APIM本身并无特殊的缓存机制.如果DNS发生变化,其解析到新的变动取决于TTL的时间.默认情况下,TTL时间为3600,所以当后端API域名变动后,大约在60分钟左右生效. 解决办法 因为…
<API管理平台XXL-API> 一.简介 1.1 概述 XXL-API是一个简洁易用API管理平台,提供API的"管理"."文档"."Mock"和"测试"等功能.现已开放源代码,开箱即用. 1.2 特性 1.极致简单:交互简洁,一分钟上手: 2.项目隔离:API以项目为维度进行拆分隔离: 3.分组管理:单个项目内的API支持自定义分组进行管理: 4.标记星级:支持标注API星级,标记后优先展示: 5.API管理:…
simplemall项目前几篇回顾: 1基于SpringCloud的Microservices架构实战案例-序篇 2基于SpringCloud的Microservices架构实战案例-架构拆解 3基于SpringCloud的Microservices架构实战案例-配置文件属性内容加解密 源码地址:https://github.com/backkoms/simplemall 前端和后端的唯一联系,变成了API接口:API文档变成了前后端开发人员联系的纽带,变得越来越重要,swagger就是一款让你…
谨以此文感谢关注此系列文章的园友!前段时间本以为此系列文章已没多少人关注,而不打算继续下去了.因为文章贴出来之后,看的人似乎不多,也很少有人对这些文章发表评论,而且几乎无人给予“推荐”.但前几天有人询问为何很久没有更新,这让我感觉把这文章翻译出来还是有价值的.为此,本人打算将此工作继续下去.这些关于Web API的技术文章均由微软专业人员撰写,虽然文章作为博客帖子而写得比较简单,但如果仔细揣摩其内容,应当还是能够有不少收获的,也希望我的这些译文能够使那些对Web API有兴趣的园友从中得到一些收…
前言 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnblogs.com/aehyok/p/3446289.html 本文描述ASP.NET Web API中的JSON和XML格式化器. 在ASP.NET Web API中,媒体类型格式化器(Media-type Formatter)是一种能够做以下工作的对象: 从HTTP消息体读取CLR(公共语言运行时)对象 将CLR对象写入HTTP消息体 Web API提供了用于JSON和XML的媒体类…
公司里面的很多部门都在广泛的采用元数据管理,也采用了公司内部开发的元数据管理工具,有些部门的实施效果一直非常好,而有些部门的效果则差强人意.这个问题,其实和软件系统开发完成进入维护阶段后成本居高不下的性质是一样的. 究其本质,是因为国内很多的公司对流程的重视程度多浮于表面,较少的深入去掌握实质部分.在具体讨论元数据和API管理的问题之前,先来说说笔者在很多部门见到过的几类现状,一.大部分业绩比较差的公司/部门的考核通常是这样的,公司有新的项目开发,负责项目管理的项目经理问部门经理要了一批开发人员…
经过产品团队的不懈努力,新版Windows Azure CDN管理门户在经过了有限开放预览之后,已经正式上线并开放给所有用户. 新版Windows Azure CDN管理门户经过全新的设计,除了在使用易用性.视觉展示效果等方面有所提升外,还增加了多个用户需求很高的功能模块.本文简要介绍了这些新增特性,更多详细内容请登入新版Windows Azure CDN管理门户体验. 概览 下面是新版CDN管理门户的首页: 目前新版CDN管理门户提供了如下功能: 域名管理 流量报表 带宽报表 缓存刷新 内容预…
ASP.NET Web API中的JSON和XML序列化 前言 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnblogs.com/aehyok/p/3446289.html 本文描述ASP.NET Web API中的JSON和XML格式化器. 在ASP.NET Web API中,媒体类型格式化器(Media-type Formatter)是一种能够做以下工作的对象: 从HTTP消息体读取CLR(公共语言运行时)对象 将CLR对象写入HTT…
对于app开发来说,必须需要有相应的api文档,一般最基础的就是用markdown工具来撰写api文档.当对于开发人员来说,是总会想着寻找更方便撰写,测试,对接前端开发的文档生成的工具. 其实这方面的工具很多:手动撰写的也很多,很多都带有mock测试功能.方便前端对接时使用. 国内的也不少: RAP:动态生成模拟数据,实时测试等功能. eoLinker:基于云端的api管理工具,同时提供在线协作,测试等的功能. SBDoc:SBDoc是一个商业化开源产品,完全免费.无论你是前端工程师,还是后端工…
      先把问题贴出来:编写一个可以解析xml及修改xml内容的工具类       由于我以前做过Android应用程序开发,之前也解析过xml文件,所以,这道题不是很难,这篇文章我先解决第一个问题,怎样去解析xml文件.       做过Android的朋友应该知道,Android中有几种解析xml文件的方法,最简单的当然是SAX(Simple API for XML),不过,这里需要注意一点,正是由于SAX太简单了,所以,它能做的事也是有很大局限性的,它只能解析而不能进行增删改操作.好了…