Conectando o Frontend e o Backend: Usando Java e Angular de Forma Divertida
- #Java
- #Angular
Introdução
Olá! Hoje vamos aprender como fazer uma mágica no mundo da programação: conectar duas partes importantes de um site! Vamos usar Java com Spring Boot no backend e Angular no frontend. Imagine que estamos construindo uma loja online onde podemos ver produtos legais. E sabe o que é mais legal? Vamos usar algumas ferramentas para deixar tudo bonito e organizado!
Criando o Backend com Java e Spring Boot
Começando o Projeto
Primeiro, vamos fazer a parte do site que guarda as informações. Pense nisso como um grande armário onde ficam guardados todos os dados dos produtos da loja. Para isso, vamos usar Java e Spring Boot. Aqui está um exemplo de como começamos:
xml
<!-- Este é o arquivo que diz quais ferramentas vamos usar -->
<dependencies>
<!-- Ferramenta para criar sites -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Ferramenta para guardar dados -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- Banco de dados temporário -->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
Criando a Lista de Produtos
Vamos criar uma classe chamada Product
que representa cada produto que vamos vender:
java
// Esta classe representa um produto
@Entity
public class Product {
// Este é o identificador único do produto
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
// Nome do produto
private String name;
// Preço do produto
private Double price;
// Aqui ficam os métodos para pegar e mudar os dados
// (não precisa entender tudo agora)
}
Agora, precisamos de um lugar para guardar e pegar esses produtos:
java
// Interface para guardar e pegar produtos
public interface ProductRepository extends JpaRepository<Product, Long> {
}
E aqui está nosso controlador mágico que faz a ponte:
java
// Controlador que cuida dos pedidos de informações sobre produtos
@RestController
@RequestMapping("/api/products")
public class ProductController {
@Autowired
private ProductRepository productRepository;
// Método para pegar todos os produtos
@GetMapping
public List<Product> getAllProducts() {
return productRepository.findAll();
}
// Método para adicionar um novo produto
@PostMapping
public Product createProduct(@RequestBody Product product) {
return productRepository.save(product);
}
}
Criando o Frontend com Angular
Começando o Projeto Angular
Agora, vamos criar a parte do site que as pessoas veem e interagem. Isso é como a vitrine da loja. Vamos usar Angular para isso:
bash
// Cria um novo projeto Angular
ng new product-sales
cd product-sales
// Adiciona o Bootstrap para deixar tudo bonito
ng add @ng-bootstrap/ng-bootstrap
Criando o Componente de Produtos
Vamos criar uma tela que mostra nossos produtos:
bash
Copiar
// Cria um novo componente para listar produtos
ng generate component product-list
Aqui está o código que faz a tela funcionar:
typescript
// Importa as coisas que precisamos
import { Component, OnInit } from '@angular/core';
import { HttpClient } from '@angular/common/http';
// Define como é um produto
interface Product {
id: number;
name: string;
price: number;
}
// Nosso componente para listar produtos
@Component({
selector: 'app-product-list',
templateUrl: './product-list.component.html',
styleUrls: ['./product-list.component.css']
})
export class ProductListComponent implements OnInit {
// Lista de produtos que vamos mostrar
products: Product[] = [];
constructor(private http: HttpClient) {}
// Quando a tela inicia, pegamos os produtos do servidor
ngOnInit(): void {
this.http.get<Product[]>('/api/products').subscribe(data => {
this.products = data;
});
}
}
Estilizando com Bootstrap
Para deixar nossa loja bonita, vamos usar o Bootstrap. Ele é como um estilista para nosso site:
No arquivo que diz quais estilos vamos usar, adicionamos o Bootstrap:
json
"styles": [
"src/styles.css",
"node_modules/bootstrap/dist/css/bootstrap.min.css"
],
E aqui está como deixamos nossa lista de produtos bonita com Bootstrap:
html
<div class="container mt-5">
<h2>Lista de Produtos</h2>
<div class="row">
<!-- Mostra cada produto em um cartão -->
<div *ngFor="let product of products" class="col-md-4">
<div class="card mb-4 shadow-sm">
<div class="card-body">
<h5 class="card-title">{{ product.name }}</h5>
<p class="card-text">Preço: {{ product.price | currency }}</p>
</div>
</div>
</div>
</div>
</div>
Conectando Tudo
Para fazer o frontend conversar com o backend, criamos um caminho especial. Pense nisso como um telefone entre os dois:
Criamos um arquivo para dizer ao Angular onde encontrar os dados:
json
{
"/api": {
"target": "http://localhost:8080",
"secure": false
}
}
E dizemos ao Angular para usar esse telefone especial:
json
"architect": {
"serve": {
"options": {
"proxyConfig": "src/proxy.conf.json"
}
}
}
Conclusão
Agora você conhece a mágica por trás de um site que tem um frontend e um backend se comunicando. Com isso, você pode criar sua própria loja online e adicionar muitos produtos legais!
Chamada para Ação
Que tal criar seu próprio site e inventar uma loja com seus produtos favoritos? Experimente e compartilhe suas criações com seus amigos!
Meta Description
Aprenda de forma divertida a conectar Angular e Spring Boot para criar uma loja online usando Java, com dicas simples e exemplos fáceis!
Hashtags
#Java #SpringBoot #Angular #Frontend #Backend #CodingForKids #Bootstrap #ProductList #WebFun #ProgrammingAdventure