简体   繁体   中英

RESTful API with Java Jersey and MongoDB

I am newbie with RESTful services, I am trying to make a restful api with the Jersey framework and MongoDB, my question is : How can i search data in the URL.

eg : "localhost:9999/home/users/find?id=12345", it will return the user with the id = 12345

How can we do that with Jersey ?

Thank's

You want to look into @PathParam and @QueryParam. You can find more about both of them here: http://docs.oracle.com/cd/E19776-01/820-4867/6nga7f5np/index.html

In short, a path param is the bit between the '/', in your example this is "find". and the query param is id, which has a value of 12345.

You will then need to look this up in a database I assume to get your result to return.

You may want to look at an article I wrote a few years ago. I have a full stack MongoDb, Jersey, Jetty server user admin application at the following github [here]( https://github.com/pmkent/angular-bootstrap-java-rest "Angular Bootstrap Java Rest")!

To use a query parameter in Jersey, you'll define it in the jersey Method signature like so:

@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);
}

Once you harvest the id correctly, you can then query your MongoDB however you'd like based on that passed-by-reference id .

In Jersey, this method is often wrapped in a class in which all related Jersey Resources can be organized. My examples given utilize the Jersey Annotation style.

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

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

}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM