[Java] RESTful auf Play! Rahmen



Answers

Dies ist immer noch eine beliebte Frage, aber die am häufigsten gewählten Antworten sind mit der aktuellen Version des Spiels nicht aktuell. Hier ist ein funktionierendes REST-Beispiel mit play 2.2.1:

Konf / Routen:

GET     /users                 controllers.UserController.getUsers
GET     /users/:id             controllers.UserController.getUser(id: Long)
POST    /users                 controllers.UserController.createUser
PUT     /users/:id             controllers.UserController.updateUser(id: Long)
DELETE  /users/:id             controllers.UserController.deleteUser(id: Long)

App / Controller / UserController.java:

public static Result getUsers()
{
    List<User> users = Database.getUsers();
    return ok(Json.toJson(users));
}

public static Result getUser(Long id)
{
    User user = Database.getUser(id);
    return user == null ? notFound() : ok(Json.toJson(user));
}

public static Result createUser()
{
    User newUser = Json.fromJson(request().body().asJson(), User.class);
    User inserted = Database.addUser(newUser);
    return created(Json.toJson(inserted));
}

public static Result updateUser(Long id)
{
    User user = Json.fromJson(request().body().asJson(), User.class);
    User updated = Database.updateUser(id, user);
    return ok(Json.toJson(updated));
}

public static Result deleteUser(Long id)
{
    Database.deleteUser(id);
    return noContent(); // http://stackoverflow.com/a/2342589/1415732
}
Question

Wir planen ein Projekt, das primär Inhalte für mobile Apps bereitstellt, aber eine Website haben muss.

Meine Frage ist, ob es Sinn macht, Jersey oder Restlet zu verwenden, um REST-APIs für unsere mobilen Apps zu entwickeln, und dann Play! um die Website zu bedienen.

Oder macht es mehr Sinn, einfach nur Play zu verwenden! um alles zu machen? Wenn ja, REST mit Play! Rahmen?




Die Integration in eine JAX-RS-Implementierung ist ein möglicher alternativer Ansatz zur Verwendung des in Play integrierten HTTP-Routings. Für ein RESEasy-Beispiel siehe das RESTEasy Play! Modul .

Dieser Ansatz ist sinnvoll, wenn Sie bereits in JAX-RS investiert sind oder wenn Sie einige der erweiterten Funktionen benötigen, die JAX-RS bietet, wie z. B. Content-Negotiation. Wenn nicht, wäre es einfacher, Play direkt zu verwenden, um JSON oder XML als Antwort auf HTTP-Anfragen zu liefern.







Links