osprey-mock-service v0.4.0发布🚀

osprey-mock-service v0.4.0引入了一个改进,但是它比看起来要重要得多。

前言

RAML鼓励使用示例来说明整个API规范中的有效负载。 有两种方法可以在RAML中进行示例:

  • 对象级示例
  • 属性级别的示例

osprey-mock-service使用这些RAML示例来模拟API响应。 这是为了为API设计人员和开发人员提供一种在实现API之前了解其外观的方法。

对象级示例

这是如何定义GET响应对象中的示例的方式:

  #%RAML 1.0 
标题:People API
baseUri:http://127.0.0.1
mediaType:[application / json]

/人:
得到:
回应:
200:
身体:
特性:
first_name:字符串
last_name:字符串
年龄:
例:
first_name:简
last_name:陶氏
年龄:85

并使用osprey-mock-service CLI运行此RAML文件:

  $ osprey-mock-service -f api.raml -p 1234 

最终将返回这样的响应:

  $ http http:// localhost:1234 / people 
HTTP / 1.1 200 OK
(...)

{
“ first_name”:“简”,
“ last_name”:“ Dow”,
“年龄”:85
}

现在,这是一个定义多个RAML命名示例的示例:

  (...) 

/人:
得到:
回应:
200:
身体:
特性:
first_name:字符串
last_name:字符串
年龄:
例子:
简:
first_name:简
last_name:陶氏
年龄:85
约翰:
名字:约翰
last_name:母鹿
年龄:22

在这种情况下, osprey-mock-service将“随机”返回以下任一值:

  $ http http:// localhost:1234 / people 
HTTP / 1.1 200 OK
(...)

{
“ first_name”:“简”,
“ last_name”:“ Dow”,
“年龄”:85
}

要么:

  $ http http:// localhost:1234 / people 
HTTP / 1.1 200 OK
(...)

{
“ first_name”:“约翰”,
“ last_name”:“ Doe”,
“年龄”:22
}

介绍属性级别的示例

在v0.4.0之前, osprey-mock-service不会返回任何属性级别的示例,例如下面定义的示例。

  #%RAML 1.0 
标题:People API
baseUri:http://127.0.0.1
mediaType:[application / json]

/人:
得到:
回应:
200:
身体:
特性:
名字:
类型:字符串
例如:简
姓:
类型:字符串
例如:Doe
年龄:
类型:数字
例如:10

但是,它现在可以正确处理属性级别的示例,并将属性示例编译为一个响应对象:

  $ http http:// localhost:1234 / people 
HTTP / 1.1 200 OK
(...)

{
“ first_name”:“简”,
“ last_name”:“ Doe”,
“年龄”:10
}

🚀🚀🚀