如何解决上传到契约经纪人的契约文件缺少某些细节
DslPart mySettingsDsl = PactDslJsonArray.arrayEachLike()
.eachKeyLike("sumne",PactDslJsonRootValue.stringMatcher("sumne|sid","sumne"))
.stringMatcher("sid","[a-zA-Z0-9]{1,10}")
.object("sumne",new PactDslJsonBody()
.stringType(FOOTER,"footer")
.stringType(HEADER,"header")
.stringMatcher(MIDDLE,"\\d{7}")
.stringMatcher(END,"\\d{3}")
.asBody()
).close();
return builder
.uponReceiving("Some Description")
.matchPath("/v1/" + UUID_REGEX + "/customization")
.method(GET.name())
.willRespondWith()
.status(200)
.matchHeader(CONTENT_TYPE,APPLICATION_JSON.getMimeType())
.body(new PactDslJsonBody()
.stringType(STATUS,"ok")
.object(DATA,new PactDslJsonBody()
.stringMatcher(CODE,"\\d{14}")
.stringMatcher(APP_NO,"\\d{5}")
.stringType(PROD_NAME,"product1")
.object(MY_SETTINGS,mySettingsDsl)
.asBody())
.asBody())
.toPact();
{
"provider": {
"name": "provider"
},"consumer": {
"name": "consumer"
},"interactions": [
{
"description": "Some Description","request": {
"method": "GET","path": "/v1/C2D0B4D3-0Bdc-5CDa-2ffF-E8fEb0c9fE1B/customization","matchingRules": {
"path": {
"matchers": [
{
"match": "regex","regex": "/v1/[0-9a-fA-F]{8}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{12}/customization"
}
],"combine": "AND"
}
}
},"response": {
"status": 200,"headers": {
"Content-Type": "application/json"
},"body": {
"data": {
"code": "84502366577143","appNo": "76703","mySettings": [
{
"sumne": {
"footer": "footer","header": "header","middle": "8230126","end": "916"
},"sid": "EfL6wZ"
}
],"prodName": "product1"
},"status": "ok"
},"matchingRules": {
"header": {
"Content-Type": {
"matchers": [
{
"match": "regex","regex": "application/json"
}
],"combine": "AND"
}
},"body": {
"$.status": {
"matchers": [
{
"match": "type"
}
],"combine": "AND"
},"$.data.code": {
"matchers": [
{
"match": "regex","regex": "\\d{14}"
}
],"$.data.appNo": {
"matchers": [
{
"match": "regex","regex": "\\d{5}"
}
],"$.data.prodName": {
"matchers": [
{
"match": "type"
}
],"$.data.mySettings": {
"matchers": [
{
"match": "type","min": 0
}
],"$.data.mySettings[*].*": {
"matchers": [
{
"match": "regex","regex": "sumne|sid"
}
],"$.data.mySettings[*].sid": {
"matchers": [
{
"match": "regex","regex": "[a-zA-Z0-9]{1,10}"
}
],"$.data.mySettings[*].sumne.footer": {
"matchers": [
{
"match": "type"
}
],"$.data.mySettings[*].sumne.header": {
"matchers": [
{
"match": "type"
}
],"$.data.mySettings[*].sumne.middle": {
"matchers": [
{
"match": "regex","regex": "\\d{7}"
}
],"$.data.mySettings[*].sumne.end": {
"matchers": [
{
"match": "regex","regex": "\\d{3}"
}
],"combine": "AND"
}
}
},"generators": {
"body": {
"$.data.code": {
"type": "Regex","regex": "\\d{14}"
},"$.data.appNo": {
"type": "Regex","regex": "\\d{5}"
},"$.data[*].sid": {
"type": "Regex",10}"
},"$.data[*].sumne.middle": {
"type": "Regex","regex": "\\d{7}"
},"$.data[*].sumne.end": {
"type": "Regex","regex": "\\d{3}"
}
}
}
}
}
],"Metadata": {
"pactSpecification": {
"version": "3.0.0"
},"pact-jvm": {
"version": "4.1.13"
}
}
}
但是当使用 mvn pact:publish
推送到 Pact broker 时,我只能在 pactbroker 中看到其中的一部分。
{
"status": 200,"headers": {
"Content-Type": "application/json"
},"body": {
"data": {
"code": "84502366577143","mySettings": [
],"prodName": "product1"
},"status": "ok"
}
}
mySettings 数组在我在 pactbroker 上看到的 pact 文件中完全为空。这可能是什么问题?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。