Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Well here is how I've decided to handle the situation within my API. Its relatively simple and doesn't require much additional coding. To illustrate consider a RESTful api for Address:</p> <pre><code>@Path("/address") public class AddressService { @GET @Produces("application/xml") public StreamingOutput findAll() { ... } @POST @Produces("application/xml") @Consumes("application/x-www-form-urlencoded") public StreamingOutput create(...) { ... } // // This is the alternative to a "PUT" method used to indicate an "Update" // action. Notice that the @Path expects "/id/{id}" which allows // us to bind to "POST" and not get confused with a "Create" // action (see create() above). // @POST @Produces("application/xml") @Consumes("application/x-www-form-urlencoded") @Path("/id/{id}") public StreamingOutput update(@PathParam("id") Long id, ...) { ... } // // This is the typical "GET" method with the addition of a check // for a custom header "x-method-override" which is designed to // look for inbound requests that come in as a "GET" but are // intended as "DELETE". If the methodOverride is set to "DELETE" // then the *real* delete() method is called (See below) // @GET @Produces("application/xml") @Path("/id/{id}") public StreamingOutput retrieve( @PathParam("id") Long id, @HeaderParam("x-method-override") String methodOverride) { if (methodOverride != null &amp;&amp; methodOverride.equalsIgnoreCase("DELETE")) { this.delete(id); } ... } // // This is the typical "DELETE" method. The onlything special about it is that // it may get invoked by the @GET equivalent is the "x-method-override" header // is configured for "DELETE" // @DELETE @Produces("application/xml") @Path("/id/{id}") public StreamingOutput retrieve(@PathParam("id") Long id) { ... } </code></pre> <p>}</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload