An open API service indexing awesome lists of open source software.

https://github.com/augustomello09/spring-boot-rest-api-

Spring Boot REST API com JavaScript e Bootstrep
https://github.com/augustomello09/spring-boot-rest-api-

bootstrap html5 java javascript jquery postgresql postman spring-boot

Last synced: 10 months ago
JSON representation

Spring Boot REST API com JavaScript e Bootstrep

Awesome Lists containing this project

README

          

# Spring Boot REST API

Estudando os conceitos de programação REST API

#### Entity
Criando o entity na camada Model e criando tabela no banco de dados
~~~JAVA
@Entity
@SequenceGenerator(name = "seq_usuario", sequenceName = "seq_usuario", allocationSize = 1, initialValue = 1)
public class Usuario implements Serializable {

private static final long serialVersionUID = 1L;

@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seq_usuario")
private Long id;

private String nome;

private int idade;

public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}

public String getNome() {
return nome;
}

public void setNome(String nome) {
this.nome = nome;
}

public int getIdade() {
return idade;
}

public void setIdade(int idade) {
this.idade = idade;
}

}
~~~

![Criando tabela](https://user-images.githubusercontent.com/101072311/199089515-e8097250-ac55-4267-a4ed-5024dce1133d.png)

#### Criando o Repository

~~~JAVA
@Repository
public interface UsuarioRepository extends JpaRepository {
}
~~~

#### Fazendo o injeção de dependência
Fazendo a injeção dependência no Controller.

~~~JAVA
@Autowired
private UsuarioRepository usuarioRepository;
~~~

## EndPoint

#### Listando Todos(GET)
Criando o EndPoint que lista todos usuários e testando no Postman.
~~~JAVA
@GetMapping(value = "listatodos")
@ResponseBody/*Retorna os dados para o corpo da resposta*/
public ResponseEntity> listaUsuario() {
List usuarios = usuarioRepository.findAll();
return new ResponseEntity>(usuarios, HttpStatus.OK);/*Retorna Lista em JSON*/
}
~~~

![listaTodosPostman](https://user-images.githubusercontent.com/101072311/199598494-6c7bd801-206f-45be-9028-a74a74afaea7.png)

![lista todos banco](https://user-images.githubusercontent.com/101072311/199342656-29cdf1c1-06cc-4fd7-8723-98fe9b9e289b.png)

#### Salvando no banco(POST)
Criando o EndPoint que salva no banco de dados e testando no Postman.
~~~JAVA
@PostMapping(value = "salvar")/*mapeia url*/
@ResponseBody/*Decrição da resposta*/
public ResponseEntity salvar(@RequestBody Usuario usuario){/*Receber os dados da resposta para salvar*/
Usuario user = usuarioRepository.save(usuario);

return new ResponseEntity(user, HttpStatus.CREATED);
}
~~~

![teste](https://user-images.githubusercontent.com/101072311/199606521-8df59512-f70a-443d-b85c-a58b9d7d0361.png)

#### DELETE
Criando o EndPoint para deletar do banco.

~~~JAVA
@DeleteMapping(value = "delete")/*mapeia url*/
@ResponseBody/*Decrição da resposta*/
public ResponseEntity delete(@RequestParam Long iduser){/*Receber os dados da resposta para Deletar*/
usuarioRepository.deleteById(iduser);

return new ResponseEntity("Usuário Deletado com Sucesso", HttpStatus.OK);
}
~~~

![delete](https://user-images.githubusercontent.com/101072311/199610299-893ee562-d6cb-4b65-ae69-c6c70b313333.png)

![sucesso](https://user-images.githubusercontent.com/101072311/199610309-5ba55dc2-9de6-4b39-8370-ee5b0f4bee71.png)

#### Buscar Id
Criando o EndPoint para buscar.
~~~JAVA
@GetMapping(value = "buscaruserid")/*mapeia url*/
@ResponseBody/*Decrição da resposta*/
public ResponseEntity buscar(@RequestParam(name = "iduser") Long iduser){/*Receber os dados da respsota para consultar*/
Usuario usuario = usuarioRepository.findById(iduser).get();

return new ResponseEntity(usuario, HttpStatus.OK);
}
~~~

![buscapostman](https://user-images.githubusercontent.com/101072311/199612562-882f5e2c-c767-473d-aa45-02f89577dc21.png)

#### Atualizando no banco
Criando um EndPoint PUT para atualizar no banco de dados.

~~~JAVA
@PutMapping(value = "atualizar")/*mapeia url*/
@ResponseBody/*Decrição da resposta*/
public ResponseEntity> atualizar(@RequestBody Usuario usuario){/*Receber os dados da resposta para salvar*/
if(usuario.getId() == null) {
return new ResponseEntity("Id não informado para atualização", HttpStatus.OK);
}

Usuario user = usuarioRepository.saveAndFlush(usuario);

return new ResponseEntity(user, HttpStatus.OK);
}
~~~

![antesatualizar](https://user-images.githubusercontent.com/101072311/199615291-d9eecf06-5aa8-4cce-a86a-a71958fa890e.png)

__Atualizado__

![atualizado](https://user-images.githubusercontent.com/101072311/199615489-fb05adf9-a62c-4cf3-8104-2d5810be32de.png)

##### Caso não seja informado o Id na hora da atualização vai ocorrer o erro.

~~~JAVA
if(usuario.getId() == null) {
return new ResponseEntity("Id não informado para atualização", HttpStatus.OK);
}
~~~

![Id não informado](https://user-images.githubusercontent.com/101072311/199615319-e281e4bb-2251-44ca-8a27-1bc5b05f433f.png)

## Criando um formulário
Criando formulário utilizando HTML, JAVASCRIP, BOOTSTRAP e JQuery

#### Funcion Botão Deletar da Tela

~~~JAVA
function botaoDeletarDaTela() {
var id = $('#id').val()

if (id != null && id.trim() != '') {
deleteUser(id)
document.getElementById('formCadastroUser').reset()
}
}
~~~
#### Funcion Delete User

~~~JAVA
function deleteUser(id) {
if (confirm('Deseja realmente deletar?')) {
$.ajax({
method: 'DELETE',
url: 'delete',
data: 'iduser=' + id,
success: function (response) {
$('#' + id).remove()

alert(response)
}
}).fail(function (xhr, status, errorThrown) {
alert('Erro ao deletar usuario por id: ' + xhr.responseText)
})
}
}
~~~
#### Function Pesquisar User

~~~JAVA
function pesquisarUser() {
var nome = $('#nameBusca').val()

if (nome != null && nome.trim() != '') {
$.ajax({
method: 'GET',
url: 'buscarPorNome',
data: 'name=' + nome,
success: function (response) {
$('#tabelaresultados > tbody > tr').remove()

for (var i = 0; i < response.length; i++) {
$('#tabelaresultados > tbody').append(
'' +
response[i].id +
'' +
response[i].nome +
'VerDelete'
)
}
}
}).fail(function (xhr, status, errorThrown) {
alert('Erro ao buscar usuario: ' + xhr.responseText)
})
}
}
~~~
#### Function colocar em edição

~~~JAVA
function colocarEmEdicao(id) {
$.ajax({
method: 'GET',
url: 'buscaruserid',
data: 'iduser=' + id,
success: function (response) {
$('#id').val(response.id)
$('#nome').val(response.nome)
$('#idade').val(response.idade)

$('#modalPesquisarUser').modal('hide')
}
}).fail(function (xhr, status, errorThrown) {
alert('Erro ao buscar usuario por id: ' + xhr.responseText)
})
}
~~~
#### Function Salvar usuários

~~~JAVA
function salvarUsuario() {
var id = $('#id').val()
var nome = $('#nome').val()
var idade = $('#idade').val()

if (nome == null || (nome != null && nome.trim() == '')) {
$('#nome').focus()
alert('Informe o nome')
return
}

if (idade == null || (idade != null && idade.trim() == '')) {
$('#idade').focus()
alert('Informe a idade')
return
}

$.ajax({
method: 'POST',
url: 'salvar',
data: JSON.stringify({
id: id,
nome: nome,
idade: idade
}),
contentType: 'application/json; charset=utf-8',
success: function (response) {
$('#id').val(response.id)
alert('Gravou com sucesso!')
}
}).fail(function (xhr, status, errorThrown) {
alert('Erro ao salvar usuario: ' + xhr.responseText)
})
}
~~~

![Tela Home](https://user-images.githubusercontent.com/101072311/199790305-d886da4a-02d3-4941-b8d7-c16859322e74.png)

![telapesquisa](https://user-images.githubusercontent.com/101072311/199790265-5051a856-7208-4c03-a01d-6c6ea2f22adf.png)

## Ferramentas e Tecnologias usadas nesse repositório 🌐



Augusto-Java
Augusto-SpringBoot
Augusto-POSTGRESQL
Augusto-HTML
Augusto-JAVASCRIP
Augusto-BOOTSTRAP
Augusto-JQUERY

## Teste o projeto 👁‍🗨

Download do projeto para testar em sua máquina: https://github.com/AugustoMello09/Spring-Boot-REST-API-/archive/refs/heads/main.zip

## Entre em contato comigo através dos canais abaixo e desde já, agradeço a atenção. 🤝