【Azure API 管理】通过Java APIM SDK创建一个新的API,如何为Reqeust的Representation设置一个内容示例(Sample)?
问题描述
在使用API Management服务时,以Echo API(默认创建)举例,它会在Request的body部分默认设置一个SAMPLE指,这样在测试接口时候,就会有默认的Body内容,我们只需要根据JSON值就可以了。测试非常便捷。

那么,如果需要通过Java APIM的SDK来创建一个新接口,并且为它设置SAMPLE值,如何来实现呢?
问题解答
查看源代码文件,可以使用 withExamples 方法来实现 public RepresentationContract withExamples(Map<String,ParameterExampleContract> examples)
示例代码包含三部分
第一部分:以Vehicle为原型,生成ParameterExampleContract对象
Vehicle vehicle = new Vehicle().withVehicleType("vehicleType").withSpeedUnit("KM").withMaxSpeed(125).withAvgSpeed(90);
ParameterExampleContract parameterExample = new ParameterExampleContract().withValue(vehicle);
第二部分:把第一部分生成的对象,加入到Map对象
Map<String, ParameterExampleContract> map = new HashMap<String, ParameterExampleContract>();
map.put("default", parameterExample);
注意:一定要设置Map的Key,第一个参数一定要为 default。
第三部分:在APIM的manager创建函数中使用map对象
manager
.apiOperations()
.define("newoperations")
.withExistingApi("rg1", "apimService2", "echo-api")
.withDisplayName("test sample")
.withMethod("POST")
.withUrlTemplate("/user1")
.withTemplateParameters(Arrays.asList())
.withDescription("This can only be done by the logged in user.")
.withRequest(
new RequestContract()
.withDescription("Created user object")
.withQueryParameters(Arrays.asList())
.withHeaders(Arrays.asList())
.withRepresentations(
Arrays
.asList(
new RepresentationContract()
.withContentType("application/json")
.withExamples(map)
.withTypeName("User"))))
.withResponses(
Arrays.asList(
new ResponseContract()
.withStatusCode(200)
.withDescription("successful operation")
.withRepresentations(
Arrays.asList(
new RepresentationContract()
.withContentType("application/xml"),
new RepresentationContract()
.withContentType("application/json")))
.withHeaders(Arrays.asList())))
.create();
附录一:第一部分中Vehicle 类的定义截图

附录二:创建成功后的截图

参考资料
Azure Resource Manager ApiManagement client library for Java: https://docs.microsoft.com/en-us/java/api/overview/azure/resourcemanager-apimanagement-readme?view=azure-java-preview
RepresentationContract.withExamples(Map<String,ParameterExampleContract> examples) Method : https://docs.microsoft.com/en-us/java/api/com.azure.resourcemanager.apimanagement.models.representationcontract.withexamples?view=azure-java-preview
【Azure API 管理】通过Java APIM SDK创建一个新的API,如何为Reqeust的Representation设置一个内容示例(Sample)?的更多相关文章
- 【Azure API 管理】在APIM中使用客户端证书验证API的请求,但是一直提示错误"No client certificate received."
API 管理 (APIM) 是一种为现有后端服务创建一致且现代化的 API 网关的方法. 问题描述 在设置了APIM客户端证书,用户保护后端API,让请求更安全. 但是,最近发现使用客户端证书的API ...
- 【Azure API 管理】在APIM 中添加 log-to-eventhub 策略,把 Request Body 信息全部记录在Event Hub中
问题描述 根据文档 https://docs.azure.cn/zh-cn/api-management/api-management-howto-log-event-hubs, 可以将Azure A ...
- 【Azure API 管理】使用APIM进行XML内容读取时遇见的诡异错误 Expression evaluation failed. Object reference not set to an instance of an object.
问题描述 使用APIM,在 Inbound 中对请求的Body内容进行解析.客户端请求所传递的Request Body为XML格式,需要从Request Body中解析出多个(Element)节点值, ...
- 编写Java程序,创建Dota游戏中的兵营类,兵营类有一个类成员变量count、一个实例变量name和另一个实例变量selfCount。
返回本章节 返回作业目录 需求说明: 创建Dota游戏中的兵营类 兵营类有一个类成员变量count.一个实例变量name和另一个实例变量selfCount. count表示的是兵营已经创建士兵的总数: ...
- Android呼叫管理服务之会话发起协议(SIP)API
原文:http://android.eoe.cn/topic/android_sdk Android提供了一个支持会话发起协议(SIP)的API,这可以让你添加基于SIP的网络电话功能到你的应用程序. ...
- 2023 年十大 API 管理趋势
本文探讨了 API 管理在数字化转型中的重要性,以及 API 管理面临的挑战和发展机遇.文章重点介绍了十大 API 管理发展趋势,包括 API 安全性.API 标准化.云端 API 管理解决方案.低代 ...
- 漫谈并发编程(二):java线程的创建与基本控制
java线程的创建 定义任务 在java中使用任务这个名词来表示一个线程控制流的代码段,用Runnable接口来标记一个任务,该接口的run方法为线程运行的代码段. public ...
- React 新 Context API 在前端状态管理的实践
本文转载至:今日头条技术博客 众所周知,React的单向数据流模式导致状态只能一级一级的由父组件传递到子组件,在大中型应用中较为繁琐不好管理,通常我们需要使用Redux来帮助我们进行管理,然而随着Re ...
- Web API 2 入门——创建ASP.NET Web API的帮助页面(谷歌翻译)
在这篇文章中 创建API帮助页面 将帮助页面添加到现有项目 添加API文档 在敞篷下 下一步 作者:Mike Wasson 创建Web API时,创建帮助页面通常很有用,以便其他开发人员知道如何调用A ...
- API 管理在云原生场景下的机遇与挑战
作者 | 张添翼 来源 | 尔达Erda公众号 云原生下的机遇和挑战 标准和生态的意义 自从 Kubernetes v1.0 于 2015 年 7 月 21 日发布,CNCF 组织随后建立以来,其 ...
随机推荐
- WebAssembly入门笔记[2]:利用Memory传递数据
利用灵活的"导入"和"导出"机制,WebAssembly与承载的JavaScript应用之间可以很便利地"互通有无".<与JavaSc ...
- Vue3类型判断和ref的两个作用
1.类型判断的四种方法 isRef: 检查一个值是否为一个ref对象 isReactive:检查一个对象是否是由 reactive 创建的响应式代理 isReadonly: 检查一个对象是否是由 re ...
- 配置elementuI菜单
:unique-opened="true" 只保留一个菜单 :router="true"开启路由标识 index="users" 是标识 它 ...
- 如何将axios封装成一个插件
01==>重新写axios的插件 在src下创建一个插件文件为plugins 在创建一个http.js文件 根据官方插件 重新写axios的插件 http.js文件如下 import axios ...
- 【第4个渗透靶机项目】 Tr0ll
每天都要加油哦! 0x00 信息搜集 首先找到一下靶机的ip,并扫描端口. 靶机和kali都是桥接. 那么先看一下kali的ifconfig信息. nmap -sn 192.168.0.0/24 ...
- 手撕Vue-实现计算属性
前言 经过上一篇的学习, 完成了将数据代理到了 Nue 的实例上方,这个我们已经撕完了.接下来要实现的是计算属性,计算属性的实现原理是通过 Object.defineProperty() 来实现的,我 ...
- 曝iPhone 15系列将于9月13日发布 9月22日发售:7大升级、或售5999元起
按照往年惯例,新款iPhone将于9月中下旬(第三周)与大家见面.9to5Mac今日带来了新款iPhone的最新消息--iPhone 15系列将于9月13日发布,9月22日正式发售. 9to5Mac从 ...
- ASP.NET Core分布式项目实战(业务介绍,架构设计,oAuth2,IdentityServer4)--学习笔记
任务4:第一章计划与目录 敏捷产品开发流程 原型预览与业务介绍 整体架构设计 API 接口设计 / swagger Identity Server 4 搭建登录 账号 API 实现 配置中心 任务5: ...
- RPA AI .NET Core 与未来--学习笔记
摘要 当下 RPA 平台主要采用 .NET Framework 框架,也限制了 RPA 只用于 Windows 平台..NET Core 的开放与跨平台特性赋予 RPA 更大发展空间. RPA是什么 ...
- HBase-hbase shell操作
hbase shell操作 一.DDL操作 1.开启hbase shell hbase shell 2.查看hbase状态 Status 3.查看hbase版本 Version 4.创建命名空间 cr ...