Second QueryParam不接受Java中的Restfull API

时间:2018-08-02 06:34:35

标签: java jersey query-parameters

我有一个API,它可以接受4 Queryparams。这里的问题是,它只接受第一个QueryParam而不接受其他QueryParams

示例Curl

1) curl -vk -X GET http://localhost:8080/sample-application/employee?empname=sat&empId=3438&designation=developer

此处不接受empIddesignation,即在O/P中打印null

2) curl -vk -X GET http://localhost:8080/sample-application/employee?empId=3438&empname=sat&designation=developer

此处不接受empnamedesignation,即在O/P中打印null

3) curl -vk -X GET http://localhost:8080/sample-application/employee?designation=developer&empname=sat&empId=3438

此处不接受empnameempId,即在O/P中打印null

这是我的code

 @Path("/employee")
 @Produces(MediaType.APPLICATION_JSON)
 @Consumes(MediaType.APPLICATION_JSON)
 public class EmployeeRS {

 private static final Logger logger = LoggerFactory.getLogger(EmployeeRS.class);

 @GET
 @ApiOperation(value = "Get Employee Details", response = Employee.class)
 public Response getEmployee(
        @ApiParam(value = "Employee Name", required = false) @QueryParam(value = "empname") final String empname,
        @ApiParam(value = "Employee Id", required = false) @QueryParam("empId") String empId,
        @ApiParam(value = "Designation", required = false) @QueryParam("designation") String designation) {

        logger.info("Get Employee for empname:{}, empId:{}, designation:{}",
                empname, empId, designation);
        //Functionality to get Data
 }
}

1 个答案:

答案 0 :(得分:0)

我发现了问题所在,而问题出在curl命令上。为了考虑不止1个Query Param,我们必须在URLhttp之前和URL的末尾添加引号(“或')。因此,我们必须放置{{ 1}}之间。

URL