📚 Pré-requisitos Teóricos: este projeto aplica conceitos ensinados em Especialização em Backend com PHP e Laravel. Recomendado revisar antes de começar.
v1.0 — Laravel 11, Eloquent ORM, Migrations e API Resource Controllers
Trilha de Especialização Pedagógica — Projeto 1 de 4
- ➡️ v1 (este): API RESTful · Laravel 11 · Eloquent ORM · Form Requests · API Resources
- v2: Painel Dinâmico SPA com Laravel Livewire & Alpine.js
- v3: Processamento Assíncrono com Filas Redis & Stripe Checkout
- v4: SaaS Multi-Tenancy Enterprise com Bancos Isolados
🎓 Nível Profissional Simulado: Desenvolvedor PHP / Laravel Júnior. O PHP moderno (PHP 8.3+) é rápido, fortemente tipado e alimenta milhões de sistemas corporativos. Dominar o ecossistema Laravel (Eloquent, Migrations, Seeders, Injeção de Dependência e API Resources) abre portas no mercado corporativo global.
—`
Construir uma API RESTful Corporativa em PHP 8.3 + Laravel 11, implementando o modelo de entidades com Eloquent ORM, versionamento de schema com Migrations, validação com Form Requests e padronização de respostas JSON com API Resources.
—`
“Precisamos de uma API para gerenciar o catálogo de produtos das nossas filiais. A API precisa ter rotas completas para criar, listar, atualizar e deletar produtos, com validação rígida de preços positivos e código de barras único (EAN), e as respostas de data devem estar formatadas no padrão ISO-8601.”
| ID | Tipo | Descrição | Origem no Briefing |
|---|---|---|---|
| RF01 | Funcional | Cadastrar produtos com nome, SKU, preço e estoque via POST /api/v1/produtos. |
“criar produtos com SKU” |
| RF02 | Funcional | Validar unicidade do SKU e preço maior que zero com Form Request. | “preços positivos e código único” |
| RF03 | Funcional | Formatar saídas de data e valores monetários com API Resource. | “padrão ISO-8601” |
| RNF01 | Não-Funcional | Uso do motor de banco SQLite para desenvolvimento e PostgreSQL para produção. | Portabilidade ORM |
| RNF02 | Não-Funcional | Conformidade com os padrões PSR-12 de estilo de código PHP. | Boas Práticas PHP |
—`
| ID | User Story | Prioridade |
|---|---|---|
| US01 | Como cliente da API, quero cadastrar um produto e receber validação amigável de campos inválidos (422 Unprocessable Content). |
Alta |
| US02 | Como integrador, quero consultar produtos filtrados por categoria. | Alta |
—`
# Branch da funcionalidade
git checkout -b feature/US01-laravel-api-resources
# Subir a aplicacao com Artisan
php artisan serve --port=8000
—`
ProdutoController.php)<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use App\Models\Produto;
use Illuminate\Http\Request;
class ProdutoController extends Controller
{
public function index()
{
return response()->json(Produto::paginate(10), 200);
}
public function store(Request $request) {$validated = $request->validate([
'nome' => 'required|string|max:255',
'preco' => 'required|numeric|gt:0',
]);
$produto = Produto::create($validated);
return response()->json($produto, 201);
}
}
—`
No seu editor/IDE, abra a pasta deste projeto (File > Open Folder) ou navegue via terminal:
cd backend_php_01_laravel_rest
composer install
php main.php
# ou php artisan serve
[!TIP] Dica para execução a partir da raiz do repositório: Se você abriu o repositório completo no VS Code, basta navegar até a pasta antes de executar: cd proj_aplicacoes_full_stack/projetos/backend_php_01_laravel_rest`
—`
# Executar suíte de testes do Laravel via Pest / PHPUnit
php artisan test
—`
- Migrations e seeders rodando perfeitamente.
- Validações HTTP e respostas JSON estruturadas.
| ⬅️ Ver Todos os Projetos no Super-Hub | 🏠 Página Inicial do Portal |