📚 Pré-requisitos Teóricos: este projeto aplica conceitos ensinados em Especialização em Backend com PHP e Laravel. Recomendado revisar antes de começar.

🐘 API RESTful Corporativa com PHP & Laravel 11

v1.0 — Laravel 11, Eloquent ORM, Migrations e API Resource Controllers

Trilha de Especialização Pedagógica — Projeto 1 de 4

🎓 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.

—`

🎯 Objetivo & Escopo do Projeto

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.

—`

🧑‍💼 Fase 1 — Levantamento de Requisitos

O Briefing do Cliente (Gerente de TI de Varejo)

“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.”

Requisitos Funcionais (RF) e Não-Funcionais (RNF)

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

—`

📋 Fase 2 — Backlog & User Stories

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

—`

🌿 Fase 3 — Engenharia em Equipe (Git Flow & Setup)

# Branch da funcionalidade
git checkout -b feature/US01-laravel-api-resources

# Subir a aplicacao com Artisan
php artisan serve --port=8000

—`

🛠️ Fase 4 — Implementação Guiada (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);
    }
}

—`

🚀 Como Executar no Laboratório

1. Abra o terminal na pasta deste projeto

No seu editor/IDE, abra a pasta deste projeto (File > Open Folder) ou navegue via terminal:

cd backend_php_01_laravel_rest

2. Execute a aplicação e os testes

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`

🧭 Decisões de Arquitetura (ADRs)

—`

🧪 Testes de Validação & Asserções

# Executar suíte de testes do Laravel via Pest / PHPUnit
php artisan test

—`

✅ Checkpoint Final

  1. Migrations e seeders rodando perfeitamente.
  2. Validações HTTP e respostas JSON estruturadas.

⬅️ Ver Todos os Projetos no Super-Hub 🏠 Página Inicial do Portal