2012-02-16 12 views
4

私はAppEngineのとのRestletフレームワークを試していると私はのためにJAX-RSとJSON表現にリソース必要のRestlet + JAX-RS + JSON良い例

を(例えばArrayListのを)オブジェクトのリストを取得しよう例えばサンプルUserクラス:

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

私はこの

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

のようなユーザーの一覧を取得したいと私は、このJSON表現を取得したい

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

これを達成する最も良い方法は何ですか?

のRestletのドキュメントは、はい、それは

new User("userlastname1", "userfirstname1") 

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

いくつかのいずれかのことが可能であれば私に良いJSON表現を返し、「ユーザー」のような1つのオブジェクトのみのためのケースですが、直列化proccessが自動化されて言及しました私にいくつかの説明/サンプルコード/アイデアを教えてください。ずっと

敬具

答えて

1

を高く評価し、私は実際にちょうどのRestletののJava EE版を使用して、自分のためにこれを考え出しました。このモジュールがGAEサンドボックスで使用できるかどうかは不明ですが、JackletのRestlet拡張機能を依存関係として追加したところ、魅力的でした。

ことはあなたには、Mavenを使用している場合:

<dependency> 
    <groupId>org.restlet.jee</groupId> 
    <artifactId>org.restlet.ext.jackson</artifactId> 
    <version>2.0.10</version> 
</dependency> 
1
@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(); 
    } 
} 

ユーザーオブジェクトはPOJOでなければなりません。

public class User 
{ 
    private String firstName; 
    private String lastName; 

    public String getFirstname() 
    { 
     return firstName; 
    } 
    public String getLastname() 
    { 
     return lastName; 
    } 
    //etc 
} 
関連する問題