Seitenhistorie
Inhalt | ||
---|---|---|
|
Verwendung
Folgende Regeln sind einzuhalten:
...
1) Strikte Verwendung von GET, POST, PUT, DELETE nach Rest Standard:
GET: Holen von Daten, keine Veränderung
...
in der DB
POST: Erzeugen eines Objects in der DB
PUT: Verändern
...
eines Objects in der DB
...
. Unter bestimmten Bedingungen kann mit PUT auch ein Object erzeugt werden, dies ist aber im Gegensatz zu POST idempotent, ein zweites PUT erzeugt keinen neuen Datensatz.
DELETE: Löschen eines (
...
oder mehrerer) Objects in der DB.
...
2) Selbstsprechende "objektorientierte" Pfade, z.B:
einen Baum erzeugen:
Codeblock |
---|
POST /tree
|
einen
...
Baum verändern:
...
Codeblock |
---|
PUT /tree/{treeid} |
einen
...
Ast am Baum
...
entfernen:
Codeblock |
---|
DELETE /tree/{treeid}/branch/{branchid} |
...
3) Dabei zusätzliche, nicht unbedingt notwendige Pfadteile soweit wie möglich vermeiden. Insbesondere am Anfang:
Suboptimal:
Codeblock |
---|
/neudazu/botanik/heinzmueller/pflanzen/tree/ |
...
4) Beispiel Code für einen
...
Restservice zur Userverwaltung:
...
...
Codeblock |
---|
@Path("/user")
public class UserService {
@GET
public List<UserRVO> getUserList(@PathParam("username") String username) |
...
{
...
}
@POST
public UserRVO createUser(UserRVO userRVO) |
...
{
...
}
@GET
@Path("/{username}")
public UserRVO getUser(@PathParam("username") String username) |
...
{
...
}
@PUT
@Path("/{username}")
public UserRVO updateUser(@PathParam("username") String username, UserRVO userRVO) |
...
{
...
}
@DELETE
@Path("/{username}")
public UserRVO deleteUser(@PathParam("username") String username) |
...
{
...
}
@PUT
@Path("/{username}/password")
public Response setPassword(@PathParam("username") String username, PasswordChangeRVO passwordChange) {
...
}
} |
Überblick
Inhalte