我正在尝试使用 Jersey 开发 REST Web 服务。我的要求是能够根据传递的 PatParam 参数访问 Web 服务并返回数据。到目前为止,我的网络服务如下:
@GET
@Produces(MediaType.APPLICATION_JSON)
@Consumes({ "application/xml", "application/json", "application/x-www-form-urlencoded" })
@Path("/1.0/people{extension:(.json)*}/{personId:([^/]+?)?}{entityExtension:(.json)*}")
public String getLocation(@PathParam("extension") String extension, @PathParam("personId") String personId,@PathParam("entityExtension") String entityExtension)
{
if ((personId==null ||personId.equals("")) && (extension == null || extension.equals("")))
return "No Id, and no extension";
else
return "personId= "+personId + ", extension= " + extension+", entityExtension= "+entityExtension;
}
考虑到上面的代码,我想要实现的是以下内容:
http://localhost:8080/Jersey/RestService/1.0/people.json
应该以“json”格式返回所有人的列表(因此是 .json 扩展名)
现在,我希望能够通过简单地输入人的 ID 来获取特定人的信息,并根据扩展名在 json/xml 中返回该人的信息:
http://localhost:8080/Jersey/RestService/1.0/people/Mouhammed89.json
使用上面的 URL,我应该返回 personId: Mouhammed89 的信息,并以 json 格式返回信息。
我知道我的问题在于我正在使用的正则表达式,所以我非常感谢创建它们的帮助。