问题描述

在使用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)?的更多相关文章

  1. 【Azure API 管理】在APIM中使用客户端证书验证API的请求,但是一直提示错误"No client certificate received."

    API 管理 (APIM) 是一种为现有后端服务创建一致且现代化的 API 网关的方法. 问题描述 在设置了APIM客户端证书,用户保护后端API,让请求更安全. 但是,最近发现使用客户端证书的API ...

  2. 【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 ...

  3. 【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)节点值, ...

  4. 编写Java程序,创建Dota游戏中的兵营类,兵营类有一个类成员变量count、一个实例变量name和另一个实例变量selfCount。

    返回本章节 返回作业目录 需求说明: 创建Dota游戏中的兵营类 兵营类有一个类成员变量count.一个实例变量name和另一个实例变量selfCount. count表示的是兵营已经创建士兵的总数: ...

  5. Android呼叫管理服务之会话发起协议(SIP)API

    原文:http://android.eoe.cn/topic/android_sdk Android提供了一个支持会话发起协议(SIP)的API,这可以让你添加基于SIP的网络电话功能到你的应用程序. ...

  6. 2023 年十大 API 管理趋势

    本文探讨了 API 管理在数字化转型中的重要性,以及 API 管理面临的挑战和发展机遇.文章重点介绍了十大 API 管理发展趋势,包括 API 安全性.API 标准化.云端 API 管理解决方案.低代 ...

  7. 漫谈并发编程(二):java线程的创建与基本控制

    java线程的创建 定义任务           在java中使用任务这个名词来表示一个线程控制流的代码段,用Runnable接口来标记一个任务,该接口的run方法为线程运行的代码段. public ...

  8. React 新 Context API 在前端状态管理的实践

    本文转载至:今日头条技术博客 众所周知,React的单向数据流模式导致状态只能一级一级的由父组件传递到子组件,在大中型应用中较为繁琐不好管理,通常我们需要使用Redux来帮助我们进行管理,然而随着Re ...

  9. Web API 2 入门——创建ASP.NET Web API的帮助页面(谷歌翻译)

    在这篇文章中 创建API帮助页面 将帮助页面添加到现有项目 添加API文档 在敞篷下 下一步 作者:Mike Wasson 创建Web API时,创建帮助页面通常很有用,以便其他开发人员知道如何调用A ...

  10. API 管理在云原生场景下的机遇与挑战

    作者 | 张添翼 来源 | 尔达Erda公众号 ​ 云原生下的机遇和挑战 标准和生态的意义 自从 Kubernetes v1.0 于 2015 年 7 月 21 日发布,CNCF 组织随后建立以来,其 ...

随机推荐

  1. qperf 简要总结 - 延迟与带宽信息

    总结 同一个虚拟机: 延迟: 12us 带宽: 6GB/S 同一个物理机上面的虚拟机: 延迟: 50us-100us 带宽: 1.2GB/S 同一个交换机上面的虚拟机: 延迟: 60us 带宽: 12 ...

  2. 参照DefenseGrid在Unity中实现合理的塔防寻路机制

    前言 在一款TD游戏中,最重要的单位就两大类:防御塔(Tower)和敌人单位(Enemy).在处理敌人单位的AI行为时,最基本也是最重要的就是自动寻路.在各式TD游戏中,防御塔的攻击方式以及敌人单位的 ...

  3. 【JS 逆向百例】浏览器插件 Hook 实战,亚航加密参数分析

    关注微信公众号:K哥爬虫,QQ交流群:808574309,持续分享爬虫进阶.JS/安卓逆向等技术干货! 声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途 ...

  4. 利用pearcmd.php本地文件包含(LFI)

    本文主要是为了学习如何用pearcmd进行本地文件包含 0x00  环境准备 首先先在docker中安装一个php环境. docker exec -it [container id] /bin/bas ...

  5. C++ STL 标准模板库(排序/集合/适配器)算法

    C++ 标准模板库STL,是一个使用模板技术实现的通用程序库,该库由容器container,算法algorithm,迭代器iterator,容器和算法之间通过迭代器进行无缝连接,其中所包含的数据结构都 ...

  6. 【Linux】虚拟机太卡咋办?用云服务器Xshell配置Vmware虚拟机【技能篇】

    [Linux]用云服务器Xshell配置Vmware虚拟机[技能篇] 强烈建议本篇收藏后再食用~ 文章目录 Xshell下载 配置Vmware 尾声 平时我们使用虚拟机,可能最烦人的问题就是卡顿了.今 ...

  7. Redis Desktop Manager 0.9.3.817 最后一版免费版,新版要收费

    链接: https://pan.baidu.com/s/1wyELUhOn_rumFecNAS7L0A      提取码: 1631 版本是两三个月前,我从官网下载的,然后顺便存到了我的移动硬盘上.0 ...

  8. ASP.NET Core分布式项目实战(客户端集成IdentityServer)--学习笔记

    任务9:客户端集成IdentityServer 新建 API 项目 dotnet new webapi --name ClientCredentialApi 控制器添加验证 using Microso ...

  9. 《ASP.NET Core 微服务实战》-- 读书笔记(第6章)

    第 6 章 事件溯源与 CQRS 在本章,我们来了解一下随着云平台一同出现的设计模式 我们先探讨事件溯源和命令查询职责分离(CQRS)背后的动机与哲学 事件溯源简介 事实由事件溯源而来 我们大脑就是一 ...

  10. WPF常用控件 自定义样式( ScrollViewer TextBox PasswordBox Button RadioButton CheckBox ToggleButton ProgressBar TabControl Loading Waiting 饼图 渐变图标 消息通知 )

    控件样式一览: ScrollViewer 继承样式,使用方法跟原生一致,就不过多阐述. TextBox,PasswordBox 继承样式,Tag属性为提示文字. RadioButton,CheckBo ...