MuleSoft知识总结-4.使用RAML设计接口
文章目录
- 前言
- 设计API
前言
RAML:
RAML的全称是RESTful API Modeling Language(RESTful API建模语言),这是一种基于YAML格式的新规范,书写格式和YAML相同。RAML官网
设计API
设计一个企业员工信息API,可以获取企业员工的个人信息。进入Design Center
首先撰写API的基本信息
#%RAML 1.0
title: EmployeeAPI
documentation:- title: 个人信息content: |个人信息,可以通过访问接口获取员工的个人信息
标签 | 作用 |
---|---|
#%RAML x.x | 指定RAML版本 |
title | API名 |
documentation | 为API撰写文档 |
-title | 文档标题 |
content | 文档内容 |
- API返回值类型
types:employee:type: objectproperties:number:type: stringdisplayName: "员工号"pattern: "[0-9]{8}"example: "12345678"name:type: stringdisplayName: "员工姓名"description: "员工姓名只能是大小写字母"required: truemaxLength: 20minLength: 2pattern: "[a-zA-Z]{2,20}"example: "zhangsan"age:type: stringdisplayName: "员工年龄"pattern: "[0-9]{1,2}"example: "20"sex:type: stringdisplayName: "员工性别"enum:- man- womanexample: "man"phone:type: stringdisplayName: "员工电话"pattern: "[0-9]{11}"example: "12345678901"Email:type: stringdisplayName: "电子邮箱"pattern: "[\\w]+(\\.[\\w]+)*@[\\w]+(\\.[\\w]+)"example: "san.b.zhang@acc.com"state:type: stringdisplayName: "居住省市"pattern: "[a-zA-Z]{1,20}"example: "liaoning"city:type: stringdisplayName: "居住城市"pattern: "[a-zA-Z]{1,20}"example: "dalian"group:type: stringdisplayName: "项目名"pattern: "[a-zA-Z]{1,20}"example: "afl"team:type: stringdisplayName: "组名"pattern: "[a-zA-Z]{1,20}"example: "mulesoft"Enumber: properties:number:type: stringdisplayName: "员工号"pattern: "[0-9]{8}"example: "12345678"
标签 | 作用 |
---|---|
types | 设置类型标识符 |
employee | 类名设置为employee(可自定义) |
type | 类型,值可以为(any,array,boolean,datetime…,file,integer,number,object,string,自定义类型) |
properties | 变量名(为类设置变量) |
displayName | 为变量起一个容易理解的别名 |
description | 变量的描述内容 |
required | 必须或可选(true,false) |
maxLength | 最大长度 |
minLength | 最小长度 |
pattern | 正则表达式内容 |
example | 输出例子 |
enum | 枚举类型 |
- 定义接口
/getEmpInf:get:responses:200:body:application/json:type: employee[]post:body:application/json:type: Enumberresponses:200:body:application/json:type: employee
标签 | 作用 |
---|---|
/ | 路由 |
get | 请求方式 |
body | 外层为请求体,responses内为响应体 |
responses | 响应 |
200 | HTTP状态码 |
application/json | 消息格式 |
- Design Center内容
6.现在的employee可以进行拆解分类,比如电话和邮箱可以整合成联系方式类,居住省市和居住城市可以整合为地址类,整合后代码如下:
types:employee:type: objectproperties:number:type: stringdisplayName: "员工号"pattern: "[0-9]{8}"example: "12345678"name:type: stringdisplayName: "员工姓名"description: "员工姓名只能是大小写字母"required: truemaxLength: 20minLength: 2pattern: "[a-zA-Z]{2,20}"example: "zhangsan"age:type: stringdisplayName: "员工年龄"pattern: "[0-9]{1,2}"example: "20"sex:type: stringdisplayName: "员工性别"enum:- man- womanexample: "man"group:type: stringdisplayName: "项目名"pattern: "[a-zA-Z]{1,20}"example: "afl"team:type: stringdisplayName: "组名"pattern: "[a-zA-Z]{1,20}"example: "mulesoft"contact:type: contactdisplayName: "联系方式"address:type: addressdisplayName: "地址"contact: type: objectproperties:phone:type: stringdisplayName: "员工电话"pattern: "[0-9]{11}"example: "12345678901"Email:type: stringdisplayName: "电子邮箱"pattern: "[\\w]+(\\.[\\w]+)*@[\\w]+(\\.[\\w]+)"example: "san.b.zhang@acc.com"address:type: objectproperties:state:type: stringdisplayName: "居住省市"pattern: "[a-zA-Z]{1,20}"example: "liaoning"city:type: stringdisplayName: "居住城市"pattern: "[a-zA-Z]{1,20}"example: "dalian"Enumber: properties:number:type: stringdisplayName: "员工号"pattern: "[0-9]{8}"example: "12345678"
- Design Center支持设置单独的类文件,把types拆解分类为四个文件,分别为:employeeType.raml,contactType.raml,addressType.raml,EnumberType.raml
在EmployeeAPI中进行引用,这样分类方便管理,效果会更好
types:employee: !include entity/employeeType.ramlEnumber: !include entity/EnumberType.raml
创建entity文件夹
按照如下步骤创建employeeType.raml,contactType.raml,addressType.raml,EnumberType.raml四个文件
- 创建文件
- 定义文件类型,选择文件类型为Data Type,为文件命名
- 代码如下
employeeType.raml:
#%RAML 1.0 DataTypetype: object
properties:number:type: stringdisplayName: "员工号"pattern: "[0-9]{8}"example: "12345678"name:type: stringdisplayName: "员工姓名"description: "员工姓名只能是大小写字母"required: truemaxLength: 20minLength: 2pattern: "[a-zA-Z]{2,20}"example: "zhangsan"age:type: stringdisplayName: "员工年龄"pattern: "[0-9]{1,2}"example: "20"sex:type: stringdisplayName: "员工性别"enum:- man- womanexample: "man"group:type: stringdisplayName: "项目名"pattern: "[a-zA-Z]{1,20}"example: "afl"team:type: stringdisplayName: "组名"pattern: "[a-zA-Z]{1,20}"example: "mulesoft"contact:type: !include contactType.ramldisplayName: "联系方式"address:type: !include addressType.ramldisplayName: "地址"
contactType.raml:
#%RAML 1.0 DataTypetype: objectproperties:phone:type: stringdisplayName: "员工电话"pattern: "[0-9]{11}"example: "12345678901"Email:type: stringdisplayName: "电子邮箱"pattern: "[\\w]+(\\.[\\w]+)*@[\\w]+(\\.[\\w]+)"example: "san.b.zhang@acc.com"
addressType.raml:
#%RAML 1.0 DataTypetype: object
properties:state:type: stringdisplayName: "居住省市"pattern: "[a-zA-Z]{1,20}"example: "liaoning" city:type: stringdisplayName: "居住城市"pattern: "[a-zA-Z]{1,20}"example: "dalian"
EnumberType.raml:
#%RAML 1.0 DataTypeproperties:number:type: stringdisplayName: "员工号"pattern: "[0-9]{8}"example: "12345678"
employeeapi.raml:
#%RAML 1.0
title: EmployeeAPI
documentation:- title: 个人信息content: |个人信息,可以通过访问接口获取员工的个人信息
types:employee: !include entity/employeeType.ramlEnumber: !include entity/EnumberType.raml/getEmpInf:get:responses:200:body:application/json:type: employee[]post:body:application/json:type: Enumberresponses:200:body:application/json:type: employee
完成后如图:
下回介绍测试接口
MuleSoft知识总结-4.使用RAML设计接口相关推荐
- MuleSoft知识总结-1.MuleSoft的简要介绍
文章目录 1.前言 2.文章索引 3.MuleSoft简介 4.RAML和Dataweave 5.Anypoint Platform 6.Anypoint Studio 1.前言 笔者为企业员工,由于 ...
- 更好的设计接口_设计可以而且必须做得更好
更好的设计接口 We live in a world that becomes more dependent on technology every day. Tech gives us new wa ...
- 手把手教你设计接口自动化测试用例:根据接口信息设计测试用例
目录 01 设计主测试用例的字段 02 设计配置信息的字段 03 设计执行结果记录的字段 04 设计主测试用例内容并解决关联关系 05 设计配置信息的内容 06 执行结果记录的内容 07 参考建议 0 ...
- 手把手带你设计接口自动化测试用例:建立数据库实例和测试用例表
目录 建立数据库实例 建立主测试用例表 参考建议 设计接口自动化框架需要考虑测试用例存储的方式.在实际项目中,测试用例存储的方式有多种,可以存放在 Excel 表格中,也可以存放于 Yaml 文件中, ...
- python接口自动化(三)--如何设计接口测试用例(详解)
简介 上篇我们已经介绍了什么是接口测试和接口测试的意义.在开始接口测试之前,我们来想一下,如何进行接口测试的准备工作.或者说,接口测试的流程是什么?有些人就很好奇,接口测试要流程干嘛?不就是拿着接口文 ...
- 怎么设计接口测试用例更好——百度大佬“教你写用例”
一.简介 在开始接口测试之前,我们想一下,接口测试的流程是什么?说到这里,有些人就会产生好奇和疑问,心里mmp:接口测试要什么流程哈???不就是参考接口文档,直接利用接口测试工具(例如jmeter和p ...
- python网站设计中接口的作用_python接口自动化(三)--如何设计接口测试用例(详解)...
简介 上篇我们已经介绍了什么是接口测试和接口测试的意义.在开始接口测试之前,我们来想一下,如何进行接口测试的准备工作.或者说,接口测试的流程是什么?有些人就很好奇,接口测试要流程干嘛?不就是拿着接口文 ...
- 如何简单设计接口测试用例
接口测试是项目测试的一部分 ,它测试的主要对象是接口 ,是测试系统组件间接口的一种测试.接口测试主要用于检测外部系统与所测系统之间以及内部各系统之间的交互点.测试的重点是检查数据交互.传递.和控制管理 ...
- 更好的设计接口_陷入更好的设计
更好的设计接口 一些程序具有清晰的设计,并且对新功能进行编码非常容易. 其他程序是拼凑而成的拼布,几乎无法理解的片段,错误修复和胶水. 如果必须为此类程序编写新功能,则最好改写它们. 但是,我怀疑有一 ...
最新文章
- tomcat和nginx的使用
- 常见开发需求之前端利器webstorm中的git和快捷键
- VTK:二次方用法实战
- python返回字符串长度的函数_Python如何查找字符串的长度?(代码示例)
- 建立能持续处理请求的Client端改造
- ci框架 mysql 超时时间_mysql 字符集和校验规则( CHARSET amp; COLLATE)
- linux下c语言线程传参数,【linux】C语言多线程中运行线程池,在线程池中运行线程池,,传递的结构体参数值为空/NULL/0...
- 10许可证即将到期_食品经营许可证延续
- 第三周PLECS仿真实验
- 演练:使用 Windows 窗体收集数据
- python将word文档转换为txt
- Java开发逻辑思维题
- 配置Jinjia2模板引擎
- 大数据模型-银行客户细分与个人客户流失预警
- 微信企业号回调 php,PHP微信企业号回调模式的开启与用法实例分享
- 阿童木实验校区-----少儿编程鼓励跨学科融合发展!
- 【BSP视频教程】STM32H7视频教程第1期:初识STM32H7准备工作,了解Cortex-M7内核及MDK,IAR,Embedded Studio,STM32CubeIDE和VS Code简单比较
- 大数据评估TMT公司内在价值
- 数据通信与网络教材目录
- hackbar2.1.3 安装教程(附下载地址 )Firefox Chrome