tanszek:oktatas:jax-rs_web_service
REST API
Representational State Transfer (REST) is a software architecture style consisting of guidelines and best practices for creating scalable web services. REST is a simpler alternative to SOAP and WSDL-based Web services.
REST APIs communicate over the Hypertext Transfer Protocol (HTTP) (GET, POST, PUT, DELETE) used by web browsers.
CRUD
Simple transaction methods can be mapped to HTTP messages.
- CREATE - POST
- READ - GET
- UPDATE - PUT
- DELETE - DELETE
JBOSS RestEasy
JSON (JavaScript Object Notation)
Simple XML example of a data:
<menu id="file" value="File">
<popup>
<menuitem value="New" onclick="CreateNewDoc()" />
<menuitem value="Open" onclick="OpenDoc()" />
<menuitem value="Close" onclick="CloseDoc()" />
</popup>
</menu>
The same in JSON format:
{"menu": {
"id": "file",
"value": "File",
"popup": {
"menuitem": [
{"value": "New", "onclick": "CreateNewDoc()"},
{"value": "Open", "onclick": "OpenDoc()"},
{"value": "Close", "onclick": "CloseDoc()"}
]
}
}}
Rest Api Example
1.) Create a dynamic web project: REST_API
2.) Copy the following class:
package restapi;
import java.util.HashSet;
import java.util.Set;
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
import org.ait.rest.Restapi;
@ApplicationPath("/rest")
public class RestApplication extends Application {
public Set<Class<?>> getClasses() {
System.out.println("Restapi.class");
Set<Class<?>> classes = new HashSet<Class<?>>();
classes.add(Restapi.class);
return classes;
}
}
3.) Create an other file (org.ait.rest.Restapi) with the following content:
package org.ait.rest;
import javax.enterprise.context.RequestScoped;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@RequestScoped
@Path("restapi/{name}")
public class Restapi {
@GET
@Produces("application/json")
public Person testApi(@PathParam("name") String name) {
Person me = new Person();
me.name = name;
me.age = 18;
return me;
}
}
@XmlRootElement(name = "Person")
class Person {
String name;
@XmlElement
public String getName() {
return name;
}
@XmlElement
public int getAge() {
return age;
}
int age;
}
4.) Browse: e.g.: http://localhost:8080/REST_API/rest/restapi/karcsi
tanszek/oktatas/jax-rs_web_service.txt · Last modified: 2015/05/04 06:55 by 127.0.0.1
