SwaggerUi REST方法 - 方法生成并使用完全相同的mime类型

时间:2016-07-28 17:36:52

标签: java rest swagger-ui

我尝试使用swaggeUI创建REST方法。

按ID分享User的方法,firstName分析另一个方法,如下所示:

@Produces( { MediaType.APPLICATION_JSON } )
    @Path( "/{firstName}" )
    @GET
    @ApiOperation( value = "Find User by e-mail", notes = "Find User by e-mail", response = User.class )
    @ApiResponses( {
        @ApiResponse( code = 404, message = "User with such e-mail doesn't exists" )             
    } )
    public User getUserByFirstName( @ApiParam( value = "E-Mail address to lookup for", required = true ) @PathParam( "email" ) final String email ); 


@GET
    @Path("/{userId}")
    @Nullable
    @Produces(MediaType.APPLICATION_JSON)
    User getUserById(@Nonnull @PathParam("userId") Long userId);

构建代码时出现此错误:

  

检测到以下问题:警告:资源模型有   HTTP方法GET和输入的模糊(子)资源方法   mime-types由" @ Consumes"定义和" @ Produces"注释   Java方法用户getUserByFirstName(java.lang.String)和public   抽象用户getUserById(java.lang.Long)匹配常规   表达式/([^ /] +)。这两种方法产生并准确消耗   相同的mime-types,因此它们作为资源调用   方法永远都会失败。警告:(子)资源方法indexUsers   在UserService中包含空路径注释。

我是REST的新手,我需要帮助来修复此问题。

谢谢

1 个答案:

答案 0 :(得分:1)

尝试更改@Path定义。它无法判断Long是一个数字还是String {firstname}可能是一个Long。

尝试:

@Path("/name/{firstname}")
....
@Path("/id/{userid}")