Cícero Ednilson

Blog sobre Desenvolvimento de Softwares

Home » Desenvolvendo uma aplicação Web com Angular 4 e Spring Boot – Parte 3: Criando o serviço Rest com Spring Boot.

Desenvolvendo uma aplicação Web com Angular 4 e Spring Boot – Parte 3: Criando o serviço Rest com Spring Boot.

0 Flares Twitter 0 Facebook 0 Filament.io 0 Flares ×

Nessa parte do nosso tutorial vamos criar o nosso serviço Rest com Spring Boot.

Páginas do tutorial.

Desenvolvendo uma aplicação Web com Angular 4 e Spring Boot – Parte 1: Introdução.

Desenvolvendo uma aplicação Web com Angular 4 e Spring Boot – Parte 2: Criando o Banco de Dados

Desenvolvendo uma aplicação Web com Angular 4 e Spring Boot – Parte 3: Criando o serviço Rest com Spring Boot.

Desenvolvendo uma aplicação Web com Angular 4 e Spring Boot – Parte 4: Criando a aplicação com Angular CLI.

Desenvolvendo uma aplicação Web com Angular 4 e Spring Boot – Parte 5: Criando os acessos ao Serviço REST.

Desenvolvendo uma aplicação Web com Angular 4 e Spring Boot – Parte 6: Criando o CRUD.

Desenvolvendo uma aplicação Web com Angular 4 e Spring Boot – Parte 7: Testando a aplicação.

Criando o projeto.

Como disse na primeira parte do nosso tutorial vou usar o Spring Tool Suite para a criação do nosso serviço Rest.

Então com o Spring Tool Suite aberto vamos clicar no menu File -> New -> Spring Starter Project como mostra a imagem abaixo.

Na tela que foi aberta vamos deixar os nossos campos com os valores conforme mostra a imagem abaixo, depois vamos clicar em Next.

Na próxima tela vamos selecionar as depêndencias que vamos usar no nosso projeto, selecione as depêndencias como mostra a imagem abaixo e depois já podemos clicar em Finish.

E então podemos ver o nosso projeto criado como mostra a imagem abaixo.

Vamos abrir o nosso arquivo application.properties que fica no diretório src/main/resources e vamos adicionar as configurações de acesso ao Mysql e a porta onde vamos rodar o Tomcat Embedded.

Lembrando que você deve trocar as informações de acesso ao Mysql, pois aqui as configurações estão para o meu banco de dados.

1
2
3
4
5
6
7
8
#PORTA ONDE VAI SER EXECUTADO O NOSSO TOMCAT
server.port = 8090
 
#INFORMAÇÕES PARA CONEXÃO COM O BANCO DE DADOS MYSQL
spring.datasource.url=jdbc:mysql://172.17.0.2:3306/blog
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

Veja abaixo o arquivo configurado no nosso projeto.

Agora vamos criar um pacote com o nome de br.com.ciceroednilson.model, depois vamos adicionar uma classe com o nome de PessoaModel, essa classe vamos usar para mapear a nossa tabela, vamos deixar nossa classe com o código abaixo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package br.com.ciceroednilson.model;
 
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
 
@Table(name="tb_pessoa")
@Entity
public class PessoaModel {
 
	@Id
	@GeneratedValue(strategy= GenerationType.AUTO)
	@Column(name="id_pessoa")
	private Integer codigo;
 
	@Column(name="ds_nome")
	private String  nome;
 
	@Column(name="fl_ativo", columnDefinition="BIT")
	private boolean ativo;
 
	public Integer getCodigo() {
		return codigo;
	}
	public void setCodigo(Integer codigo) {
		this.codigo = codigo;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public boolean isAtivo() {
		return ativo;
	}
	public void setAtivo(boolean ativo) {
		this.ativo = ativo;
	}	
 
}

Agora vamos criar um pacote com o nome de br.com.ciceroednilson.repository, esse pacote vai conter o nosso objeto que vai realizar a persistência no Banco de Dados, depois de criar o pacote vamos criar uma Interface com o nome de PessoaRepository, e vamos deixar ela com o código abaixo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package br.com.ciceroednilson.repository;
 
import java.util.List;
 
 
import org.springframework.data.repository.Repository;
 
import br.com.ciceroednilson.model.PessoaModel;
 
public interface PessoaRepository extends Repository<PessoaModel, Integer> {
 
	void save(PessoaModel pessoa);
 
	void delete(PessoaModel pessoa);
 
	List<PessoaModel> findAll();
 
	PessoaModel findOne(Integer id);
}

Veja na nossa Interface PessoaRepository que estamos estendendo a Interface Repository, quando fazemos isso em nossa Interface estamos expondo de uma forma fácil um crud da nossa entidade(PessoaModel), para isso acontecer também precisamos declarar os métodos com as seguintes assinaturas: save,delete,findAll e findOne.

Veja abaixo o pacote e a Interface que criamos em nosso projeto.

Voltando ao nosso pacote br.com.ciceroednilson.model, vamos adicionar uma classe com o nome de ResponseModel, essa classe vai retornar o resultado em Json da execução das nossas operações que vamos criar para a nossa API mais a frente, vamos deixar o código da nossa classe igual ao código abaixo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package br.com.ciceroednilson.model;
 
public class ResponseModel {
 
	private int codigo;
	private String mensagem;
 
	public ResponseModel() {}
 
	public ResponseModel(int codigo, String mensagem) {
		this.codigo   = codigo;
		this.mensagem =  mensagem;
	}
 
	public int getCodigo() {
		return codigo;
	}
	public void setCodigo(int codigo) {
		this.codigo = codigo;
	}
	public String getMensagem() {
		return mensagem;
	}
 
	public void setMensagem(String mensagem) {
		this.mensagem = mensagem;
	}
 
}

Agora vamos criar um pacote com o nome de br.com.ciceroednilson.service e vamos adicionar uma classe com o nome de PessoaService, depois vamos deixar nossa classe com o código abaixo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
package br.com.ciceroednilson.service;
 
import java.util.List;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
 
import br.com.ciceroednilson.model.PessoaModel;
import br.com.ciceroednilson.model.ResponseModel;
import br.com.ciceroednilson.repository.PessoaRepository;
 
@RestController
@RequestMapping("/service")
public class PessoaService {
 
	@Autowired
	private PessoaRepository pessoaRepository; 
 
	/**
	 * SALVAR UM NOVO REGISTRO
	 * @param pessoa
	 * @return
	 */
	@RequestMapping(value="/pessoa", method = RequestMethod.POST, consumes=MediaType.APPLICATION_JSON_UTF8_VALUE,produces=MediaType.APPLICATION_JSON_UTF8_VALUE)
	public @ResponseBody ResponseModel salvar(@RequestBody PessoaModel pessoa){
 
 
		try {
 
			this.pessoaRepository.save(pessoa);
 
			return new ResponseModel(1,"Registro salvo com sucesso!");
 
		}catch(Exception e) {
 
			return new ResponseModel(0,e.getMessage());			
		}
	}
 
	/**
	 * ATUALIZAR O REGISTRO DE UMA PESSOA
	 * @param pessoa
	 * @return
	 */
	@RequestMapping(value="/pessoa", method = RequestMethod.PUT, consumes=MediaType.APPLICATION_JSON_UTF8_VALUE)
	public @ResponseBody ResponseModel atualizar(@RequestBody PessoaModel pessoa){
 
		try {
 
			this.pessoaRepository.save(pessoa);		
 
			return new ResponseModel(1,"Registro atualizado com sucesso!");
 
		}catch(Exception e) {
 
			return new ResponseModel(0,e.getMessage());
		}
	}
 
	/**
	 * CONSULTAR TODAS AS PESSOAS
	 * @return
	 */
	@RequestMapping(value="/pessoa", method = RequestMethod.GET, produces=MediaType.APPLICATION_JSON_UTF8_VALUE)
	public @ResponseBody List<PessoaModel> consultar(){
 
		return this.pessoaRepository.findAll();
	}
 
	/**
	 * BUSCAR UMA PESSOA PELO CÓDIGO
	 * @param codigo
	 * @return
	 */
	@RequestMapping(value="/pessoa/{codigo}", method = RequestMethod.GET, produces=MediaType.APPLICATION_JSON_UTF8_VALUE)
	public @ResponseBody PessoaModel buscar(@PathVariable("codigo") Integer codigo){
 
		return this.pessoaRepository.findOne(codigo);
	}
 
	/***
	 * EXCLUIR UM REGISTRO PELO CÓDIGO
	 * @param codigo
	 * @return
	 */
	@RequestMapping(value="/pessoa/{codigo}", method = RequestMethod.DELETE, produces=MediaType.APPLICATION_JSON_UTF8_VALUE)
	public @ResponseBody ResponseModel excluir(@PathVariable("codigo") Integer codigo){
 
		PessoaModel pessoaModel = pessoaRepository.findOne(codigo);
 
		try {
 
			pessoaRepository.delete(pessoaModel);
 
			return new ResponseModel(1, "Registro excluido com sucesso!");
 
		}catch(Exception e) {
			return new ResponseModel(0, e.getMessage());
		}
	}
 
}

Veja que na classe que criamos já temos todas as operações para a realização de um CRUD no nosso serviço REST.

Agora vamos executar o nosso serviço, para isso vamos clicar com o botão direito sobre a classe PessoaServiceApplication e vamos até Run As -> Spring Boot App como mostra a imagem abaixo.

Durante a inicialização você pode ver no console do Spring Tool Suite se ocorreu algum problema, caso tenha algum problema você deve corrigir antes de ir para o próximo passo.

Testando o nosso serviço Rest.

Salvando um novo registro.

Para testar o nosso serviço eu vou usar um plugin do Firefox que chama HttpRequester, mas se você quiser pode usar uma outra aplicação como o SoapUI, vamos aos testes, com HttpRequester aberto vamos adicionar a URL http://localhost:8090/service/pessoa e vamos informar o valor de request abaixo.

1
2
3
4
5
{
 
	"nome": "Cicero Ednilson 01",
	"ativo": true
}

Depois vamos clicar no botão POST e vamos ter o resultado como mostra a imagem abaixo, quando esse método é executado estamos chamando a operação salvar do nosso serviço REST, cadastre mais alguns registros antes de ir para o próximo passo.

Atualizando um registro.

Agora vamos informar a request abaixo e depois vamos clicar em PUT para editar um registro, lembrando que o código deve ser um código que foi cadastrado no banco de dados.

1
2
3
4
5
{
        "codigo": 3,
	"nome": "Maria Santos 2000",	
	"ativo": true
}

Após clicarm em PUT vai ser executado o método atualizar do nosso serviço, e então devemos ter o resultado abaixo.

Excluindo um registro.

Para excluir um registro vamos passar na URL a chave do registro que vai ser excluido, depois vamos selecionar a opção DELETE e clicar em SUBMIT, e então vamos ter o resultado como mostra a imagem abaixo.

Selecionando um registro

Para selecionar um registro vamos passar o código na URL e clicar em GET como mostra a imagem abaixo·

17

Selecionando todos os registros

Para retornar todos os registros vamos executar um GET sem passar nenhum parâmetro como mostra a imagem abaixo.

Veja que retornou todos os registros cadastrados.

Bom é isso ai, na próxima parte do nosso tutorial vamos começar a criar a nossa aplicação com Angular 4, então até a próxima.

Comentários

Name of author

Name: ciceroednilson@gmail.com

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

0 Flares Twitter 0 Facebook 0 Filament.io 0 Flares ×