路径参数和请求正文中具有相同属性的REST URI

时间:2018-03-12 13:29:19

标签: rest restful-url http-put

我正在编写一个API来更新看似

UserDetail POJO
UserDetail {
    private String userId;
    private String userName;
    private String address;
}

为了编写要更新的REST URI,我正在使用以下URI

@Path("/user/{userId}")
@PUT
@Consumes({ MediaType.APPLICATION_JSON })
void updateUser(@PathParam("userId") String userId,
                @NonNull UserDetail userDetail);

在路径参数和请求体中是否存在使用相同属性的约定?我面临的问题是,由于URI和Body都存在userId,我必须验证它们是否相同,否则抛出Exception / Override与其他/...

1 个答案:

答案 0 :(得分:0)

我不明白为什么这是一个问题。你想做的是:

if(!stringId.equals(useDetail.getUserId())) throw new Exception()

您需要为UserDeatail类生成getter或将变量公开。

如果是POST,你可能不应该把id放在路径中。使用GET,DELETE和PUT,您需要使用ID的路径。

  

GET /设备管理/设备:获取所有设备

     

POST / device-management / devices:创建新设备

     

GET / device-management / devices / {id}:获取由" id"

标识的设备信息      

PUT / device-management / devices / {id}:更新由" id"

标识的设备信息      

DELETE / device-management / devices / {id}:通过" id"

删除设备