Back-End

9 mai, 2014

Faça sua API Rest retornar um JSON em 5 minutos com Jersey

Publicidade

Olá, pessoal! O artigo de hoje tem como objetivo ensinar como retornar um objeto JSON usando Jersey em cinco minutos. Acredito que você já sabe o que é Jersey e o que é um objeto JSON, certo? Vou pular toda a teoria e ir direto para a prática.

Lets go…

Starting

Crie um projeto maven webapps.

No pom.xml deixe assim :

<dependency>
    	<groupId>com.sun.jersey</groupId>
    	<artifactId>jersey-server</artifactId>
    	<version>1.8</version>
    </dependency>
    <dependency>
    	<groupId>com.sun.jersey</groupId>
    	<artifactId>jersey-json</artifactId>
    	<version>1.8</version>
    </dependency>
<build>
    <finalName>hellojersey</finalName>
  </build>

Em src/main/java crie um package  e uma classe:

jerseypackage

HelloJerseyService.java

É a classe que terá o serviço, veja:

@Path("/hello")
public class HelloJerseyService {
	@GET
	@Path("/client")
	@Produces(MediaType.APPLICATION_JSON)
	public Client getCliente() {
		Client client = new Client();
		client.setName("Hello World Camilo");
		return client;
	}
}

@Path – aqui estamos dizendo que caminho seguir para acessar esse serviço. E para obter um cliente é através do /client sendo a url completa assim /hello/client

Crie a classe Client.java

public class Client {
	private String name;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	} 
	
}

Abra o arquivo web.xml, pois precisamos dizer que vamos usar o Jersey e fazer umas configurações, portanto crie o servlet a seguir:

<servlet>
  <servlet-name>jersey-servlet</servlet-name>
  <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
  <init-param>
   <param-name>com.sun.jersey.config.property.packages</param-name>
   <param-value>com.camilolopes.jersey.services</param-value>
  </init-param>
  <init-param>
   <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
   <param-value>true</param-value>
  </init-param>
 </servlet>

No primeiro init-param estamos dizendo onde está o package com a classe de serviço para o Jersey.  No segundo estamos dizendo: “pode ser retornado um objeto JSON”. E aqui:

<servlet-mapping>
  <servlet-name>jersey-servlet</servlet-name>
  <url-pattern>/rest/*</url-pattern>
 </servlet-mapping>

Estamos configurando o mapping para acessar essa parte da aplicação, ou seja, será:

http://localhost:8080/hellojersey/rest/hello/client

Testando

Execute o seguinte comando:

 maven  mvn tomcat:run

E acesse pelo browser http://localhost:8080/hellojersey/rest/hello/client

jerseyhelloworld

Download do projeto no GitHub: https://github.com/camilolopes/myworkspace

Simples não? Vou ficando por aqui.

See ya!!

Abraços.