这就是我的 Jersey Rest web 服务的一些方法的样子,我有一些方法来更新用户设置,例如:
@PUT
@Path("/langauge")
@Consumes("text/plain")
public void updateLanguage(String lang) {
***check validity of the lang by string comparisons**
and update database with the new language*
}
@PUT
@Path("/threshold")
@Consumes("text/plain")
public void updateThreshold(Long threshold) {
*//check value and update in server*
}
现在我有几个问题;
1-而不是针对不同的更新选项使用不同的资源路径,创建一个资源并使用查询参数进行更新会更好吗?这看起来更 Restish 但我不确定我是否真的应该将其更改为类似的东西,因为将来如果有更多的参数需要更新,它会非常混乱,而拥有独立的路径看起来更清晰?
@PUT
@Path("/settings/{lang}/{threshold}")
@Consumes("text/plain")
public void updateSettings(@PathParam("threshold") String thre,
@PathParam("lang") String lang,
@DefaultValue("") @QueryParam) {
}
2-另一个问题是在更新语言时,我现在接受一种语言作为字符串,然后检查服务器中是否有效,所以当客户端使用这种方法时,他们不知道他们究竟应该发送什么作为有效参数。有没有办法让这对用户更加友好,在 WADL 文件上添加一些评论是一种选择,但是还有另一种更多的 REST 方式吗?