Verwendung

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:

POST /tree

einen Baum verändern:

PUT /tree/{treeid}

einen Ast am Baum entfernen:

DELETE /tree/{treeid}/branch/{branchid}


3) Dabei zusätzliche, nicht unbedingt notwendige Pfadteile soweit wie möglich vermeiden. Insbesondere am Anfang:

Suboptimal:

/neudazu/botanik/heinzmueller/pflanzen/tree/

4) Beispiel Code für einen Restservice zur Userverwaltung:


@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) {
	...
 }
 
}
  • Keine Stichwörter