2015-02-09 94 views
0

我是新手与REST风格的服务,我想与泽西框架和MongoDB做一个宁静的API,我的问题是:我如何搜索URL中的数据。REST风格的API与Jav​​a泽西岛和MongoDB

e.g: “本地主机:9999 /家庭/用户/找到ID = 12345”,它将返回给用户的ID = 12345

我们怎样才能做到这一点与泽西?

感谢的

+1

什么部分是你有问题?如何编写泽西岛代码?如何编写Mongo访问代码?对于前者,这是宝藏的东西。任何好的教程都应该提供一个使用'@ QueryParam'的例子,这就是你所需要的。如果是后者,请查看[Java驱动程序入门](http://docs.mongodb.org/ecosystem/tutorial/getting-started-with-java-driver/#getting-started-with-java -driver)。这里是[Jersey Documentation](https://jersey.java.net/)。我建议你做一个尝试,如果你陷入困境,那么回到一个更具体的问题。 – 2015-02-09 12:39:34

回答

1

您想查看@PathParam和@QueryParam。你可以在这里找到更多关于他们两个: http://docs.oracle.com/cd/E19776-01/820-4867/6nga7f5np/index.html

简而言之,路径参数是'/'之间的位,在你的例子中这是“查找”。并且查询参数是id,其值为12345.

然后,您需要在数据库中查看该数据库,以便让您的结果返回。

+0

只是为了澄清,“/”之间的位不一定是'@ PathParam'。它可能仅仅是“@ Path”本身的一部分。 – 2018-01-17 21:22:05

0

你可能想看看我几年前写的一篇文章。我有一个完整的堆栈MongoDb,泽西岛,Jetty服务器用户管理应用程序在下面的github [这里](https://github.com/pmkent/angular-bootstrap-java-rest“Angular Bootstrap Java Rest”)!

+0

欢迎来到计算器!当提及外部链接时,请将所有相关部分复制到您的答案中。 – Aloso 2018-01-17 21:02:01

0

要在新泽西州query parameter,你会在球衣方法签名定义它,像这样:

@GET 
@Path("home/users/find") 
public Response myMethod(@QueryParam("id") int id) { 
    // utilizes the id specified in the url parameter "id" 
    User user = someMongoMethodToFindById(id); 
} 

一旦你正确地收获了ID,就可以查询您的MongoDB的,但是你会喜欢基于在那通过参考id

在泽西岛,这种方法通常包含在一个可以组织所有相关Jersey资源的类中。我给出的例子使用了Jersey注记风格。

@Path("home/users") 
public class UserResources { 

    @Path("find") 
    public Response myMethod(@QueryParam("id")) { 
    ... 
    } 

}