Microservices 带有path变量的服务终结点正在使用云契约导致404

Microservices 带有path变量的服务终结点正在使用云契约导致404,microservices,rest-assured,spring-cloud-contract,groovydsl,Microservices,Rest Assured,Spring Cloud Contract,Groovydsl,我写了一份合同,插件自动生成了测试。我在这些自动生成的测试中看到了一种非常奇怪的行为 以下是我的服务端点: @RequestMapping(value="/check/{id}" method= RequestMethod.GET, produces = Media.APPLICATION_JSON_VALUE) public ResponseEntity<List<Application>> getApplications( @PathVariable (value =

我写了一份合同,插件自动生成了测试。我在这些自动生成的测试中看到了一种非常奇怪的行为

以下是我的服务端点:

@RequestMapping(value="/check/{id}" method= RequestMethod.GET, produces = Media.APPLICATION_JSON_VALUE)
public ResponseEntity<List<Application>> getApplications(
@PathVariable (value = "id") String id){

   return appService.findAll(id);
}
当我运行“mvn清洁安装”时,测试将自动生成并运行。这与上述合同配合良好,测试完全通过

但是,如果我将路径中的数据更改为“/check/12345678”,它将开始失败

我无法理解的是,我的端点使用的是id path varaible,它是一种字符串类型。对于这种类型的路径,任何值都应该是好的。但是,以下路径可行:

    url '/check/1234567'
    url '/check/12'
    url '/check/12347'
下面的方法不起作用:

    url '/check/12345678' //added just one more digit
    url '/check/aa4567'   //prepended characters 
    url '/check/123aa'    //appended characters

如果我能得到关于这种行为的解释,或者如何解决它,那就太好了。实际上,任何字符串都应该工作。例如
“/check/234df-dfs-fs234fds-sdf-fssd3rr”

您可以尝试使用url模式而不是url,替换

url '/check/1234567'
为了


您可以尝试使用urlPattern而不是url,替换

url '/check/1234567'
为了


我也尝试过这个模式,它给出了相同的结果“预期的:但是:”'url$(consumer('/check/^[a-z0-9]+$)、producer('/check/12345678'))得到了修复。这些模式并没有什么问题,它只是针对服务,并试图根据实现查找数据。在没有数据的情况下,实现抛出404。它正在为一些URL工作,因为这些ID有数据。我通过模拟服务修复了它。我也尝试了该模式,它给出了与预期相同的结果:但“url$(consumer('/check/^[a-z0-9]+$”),producer('/check/12345678'))得到了修复。这些模式并没有什么问题,它只是针对服务,并试图根据实现查找数据。在没有数据的情况下,实现抛出404。它正在为一些URL工作,因为这些ID有数据。我通过模仿服务解决了这个问题。
urlPattern '/check/[0-9]+'