Need RESTLET + JAX-RS + JSON A good example

I am experimenting with the Restlet platform with AppEngine and I am trying to get a list of objects (e.g. ArrayList) to represent JSON with a JAX-rs resource

For example, a sample user class:

public class User { private String lastname; private String firstname; public User(){}; public User(String lname,String fname){ this.firstname = fname; this.lastname = lname; } public String getLastname() { return lastname; } public void setLastname(String lastname) { this.lastname = lastname; } public String getFirstname() { return firstname; } public void setFirstname(String firstname) { this.firstname = firstname; } } 

I want to get a list of users like this

 @GET @Path("users") @Produces(MediaType.APPLICATION_JSON) public ArrayList<User> getUsers() { ArrayList<User> users = new ArrayList<User>(); users.add(new User("userlastname1", "userfirstname1")); users.add(new User("userlastname3", "userfirstname2")); return users; } 

and I want to get this representation of JSON

 [ { lastname: "userlastname1", firstname: "userfirstname1" }, { lastname: "userlastname2", firstname: "userfirstname2" } ] 

What is the best way to achieve this?

The Restlet documentation indicated that the serialization process is automated, yes, this is a matter for only one object, such as "User"

 new User("userlastname1", "userfirstname1") 

give me a good view of JSON

 { lastname: "userlastname1", firstname: "userfirstname1" } 

If someone can give me some explanation / sample code / ideas about this. much appreciated

Regards

+4
source share
2 answers

I actually just figured it out for myself using the Java EE version for Restlet. Not sure if this module is available for the GAE sandbox, but I just added the Restlet extension for Jackson as a dependency, and it worked like a charm.

If you are using Maven:

 <dependency> <groupId>org.restlet.jee</groupId> <artifactId>org.restlet.ext.jackson</artifactId> <version>2.0.10</version> </dependency> 
+1
source
 @Path("/users") public interface IUserRoutes { @GET Response getUsers(); } @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) public class UserRoutesImpl implements IUserRoutes { public Response getUsers() { return new UserResponse().getUsers(); } } public class UserResponse { public Response getUser() { List<Users> users = new UserModel().getUsers(); return Response.ok(users).build(); } } 

Custom object must be POJO.

 public class User { private String firstName; private String lastName; public String getFirstname() { return firstName; } public String getLastname() { return lastName; } //etc } 
+1
source

Source: https://habr.com/ru/post/1396860/


All Articles