Encapsulando o Response da API RESTful

API RESTful. Gostaria que todos os retornos de minha API Restful fossem padronizadas e tivessem a mesma estrutura.

Para padronizar o retorno das requisições de uma API Restful, o indicado é a criação de uma classe responsável por encapsular os dados de retorno de um modo estruturado.

 

Veja também:

 

Por isso devemos criar uma classe “Response” ou com qualquer outro nome, que conterá uma estrutura mínima para manipular os casos de sucesso ou erro em uma requisição, mantendo assim toda a estrutura da API padronizada.

Primeiramente vamos criar uma classe para encapsular todas as requisições HTTP de nossa API.

import java.util.ArrayList;
import java.util.List;

public class Response<T> {

/*Com está variável podemos receber qualquer objeto*/
	private T data;
	private List<String> errors;

	public Response() {
	}

	public T getData() {
		return data;
	}

	public void setData(T data) {
		this.data = data;
	}

	public List<String> getErrors() {
		if (this.errors == null) {
			this.errors = new ArrayList<String>();
		}
		return errors;
	}

	public void setErrors(List<String> errors) {
		this.errors = errors;
	}
}

Na classe acima foram definidos basicamente dois atributos, “data” para conter os dados em caso de sucesso, e “errors” para armazenar mensagens de erros do sistemas.

Nesse caso, todas as requisições seguirão um mesmo padrão, verifique no código a seguir como ficaria o controller em Spring Boot:

@RestController
@RequestMapping("/api/empresas")
public class EmpresaController {
	@PostMapping
	public ResponseEntity<Response<EmpresaDto>> cadastrar(@Valid @RequestBody EmpresaDto empresaDto,
			BindingResult result) {

		Response<EmpresaDto> response = new Response<EmpresaDto>();

		if (result.hasErrors()) {
			result.getAllErrors().forEach(error -> response.getErrors().add(error.getDefaultMessage()));
			return ResponseEntity.badRequest().body(response);
		}

		empresaDto.setId(1L);
		response.setData(empresaDto);
		return ResponseEntity.ok(response);
	}
}

Baixe o ebook de API RESTful em Spring Boot

 
Encapsulando o Response da API RESTful
 

Curso recomendado para você

Selecionei os cursos on-line para você se preparar e abrir as portas para as vagas de programação. Conheça cada um dos cursos nos links oficiais abaixo. 🙂

Curso Profissional + Certificado + Acesso Vilatício + Suporte


Formação Java Web Profissional - Cursos em Java
Full-Stack Web Java EE
Mais de 600 aulas em PrimeFaces, JSF, Spring, Hibernate, JPA, Ireport, CDI e muitos mais. Iremos do básico ao avançado.
2.985 alunosHoras do curso - Cursos em Java 150h Horas do curso certificado

600+ aulas. A melhor forma de aprender a desenvolver sistemas em Java é tendo como exemplo um projeto e curso completo onde possa observar o código para melhor entendimento do funcionamento das rotinas a acompanhar as vídeos aulas de desenvolvimento. Esse curso contém tudo que um desenvolvedor precisa saber para entrar no mercado de trabalho.
Desenvolvedor(a) Full-Stack
Full-Stack Web PHP
Domine as principais tecnologias do mercado e se torne Desenvolvedor Full-Stack, com salários na faixa dos R$5.000,00.
1.600 alunosHoras do curso 150h Horas do curso certificado

Adquira hoje o curso e tenha acesso ao mesmo para sempre. Você pode se inscrever hoje e estudar no seu ritmo, pois o curso nunca vai expirar.

 


 


Acesse
Cursos e Projetos
Java
Acesse
Outros Cursos
PHP MySQL Android
Acesse
Encomende um Projeto
Feito pra Você
Acesse
Tire as Dúvidas On-line
Consultor
Acesse
Aulas de Java só suas
Encomende Agora
Acesse
Dividindo Conhecimento
Posts e Tutoriais
Acesse
Sites e Parceiros
Associados
Acesse
Conheça os curso gratuitos
Grátis

Deixe uma resposta

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

 

Depoimento de aluno


 
Alunos Felizes
 
Alunos Felizes
 
Alunos Felizes
 
Instrutor Java Quer se tornar aluno VIP? CLIQUE AQUI!
Instrutor Java

Alex Fernando Egidio
Autor, criador e fundador do JDev Treinamento on-line. Atua no mercado como desenvolvedor e engenheiro de sistemas em Java é apaixonado por desenvolvimento web em Java e pela “mágica” que seus frameworks trazem para o dia a dia de nós desenvolvedores.
Com mais de 10 anos de experiência ajuda programadores do Brasil todo a se tornarem profissionais.