Step 1: Download cuubez from the Repository
The first step is to download the latest cuubez stable release from: http://www.cuubez.com/index.php/2014-05-20-11-01-54
Maven repo
<
dependencies
>
<
dependency
>
<
groupId
>com.cuubez</
groupId
>
<
artifactId
>cuubez-core</
artifactId
>
<
version
>1.0.0</
version
>
</
dependency
>
</
dependencies
>
Step 2: Add the following libraries to your Web application
com.thoughtworks.xstream commons-logging javax.servlet javassist javax.ws.rs com.google.code.gson
Step 3: Define listeners and bootstrap classes\
< web-app > < display-name >Employee Example</ display-name > < listener > < listener-class >com.cuubez.core.servlet.BootstrapContextListener</ listener-class > </ listener > < servlet-mapping > < servlet-name >init</ servlet-name > < url-pattern >/rest/*</ url-pattern > </ servlet-mapping > < servlet > < servlet-name >init</ servlet-name > < servlet-class >com.cuubez.core.servlet.HttpServletDispatcher</ servlet-class > </ servlet > </ web-app >
|
Step 4: Create your first RESTful service
In a REST based architecture everything is a resource. A resource is accessed via a common interface based on the HTTP standard methods (e.g., POST, GET, PUT or DELETE). Every resource should support the HTTP common operations. Resources are identified by global ID's (which are typically URIs). In the first example, we will recall a RESTful Web service which returns a User object when a certain path is request with an HTTP GET:
User object :
public class User { private String id; private String name; private int age; public User(String id, String name, int age) { this.name = id; this.age = age; this.name = name; } public String getId() {return id;} public int getAge() {return age;} public String getName() {return name;} public void setId(String id) {this.id = id;} public void setAge(int age) {this.age = age;} public void setName(String name) {this.name = name;} }
REST service class :
@Path("/users") public class UserDetail { @GET @Path("/{userId}") @Produces(MediaType.APPLICATION_JSON) public User getUser(@PathParam(value = "userId")String userId) { User user = new User(userId, "jhone", 35); return user; } }
The @Path annotation at class level is used to specify the base URL of the Web service. Then you can assign a @Path annotation at method level to specify the single action you want to invoke.
In this example, if you need to invoke the userDetail service, you have to use the following URL: (we suppose that the web application is named cuubez.war)
http://localhost:8080/cuubez/rest/users/id11001
would return:
{ "id":"id11001", "name": "jhone", "age": 35 }
Comments