PHP

27 jun, 2024

Laravel 11: guia completo para criar uma API RESTful CRUD

Publicidade

Laravel 11 é um framework PHP robusto e flexível, ideal para criar APIs RESTful. Neste artigo, vamos mostrar como construir uma aplicação CRUD (Create, Read, Update, Delete) seguindo as melhores práticas com Laravel 11. Siga este guia passo a passo para garantir que sua API esteja bem estruturada e eficiente.

Criando uma API RESTful CRUD com Laravel 11

Passo 1: Instalação e Configuração do Banco de Dados

Instalar Laravel 11

Abra o terminal e execute o comando:

composer create-project laravel/laravel apicrud

Configurar o Banco de Dados

No arquivo .env, insira as credenciais do banco de dados:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=nome_do_banco
DB_USERNAME=usuario
DB_PASSWORD=senha

Passo 2: Criando Modelos, Requests, Resources, Controllers e Rotas

Criar Modelo e Migração

No terminal, execute:

php artisan make:model Post -m

Gerar Request de Validação

php artisan make:request StorePostRequest

Criar Resource

php artisan make:resource PostResource

Gerar Controller

php artisan make:controller Api/PostController --model=Post

Passo 3: Configuração da Migração

No arquivo database/migrations/create_posts_table.php, configure a tabela:

public function up()
{
    Schema::create('posts', function (Blueprint $table) {
        $table->id();
        $table->string('title');
        $table->text('content');
        $table->timestamps();
    });
}

public function down()
{
    Schema::dropIfExists('posts');
}

Passo 4: Modelo Post

No arquivo app/Models/Post.php, defina o modelo:

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    use HasFactory;

    protected $fillable = ['title', 'content'];
}

Passo 5: Request de Validação

No arquivo app/Http/Requests/StorePostRequest.php, defina as regras de validação:

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class StorePostRequest extends FormRequest
{
    public function authorize()
    {
        return true;
    }

    public function rules()
    {
        return [
            'title' => ['required', 'max:70'],
            'content' => ['required']
        ];
    }
}

Passo 6: Resource Post

No arquivo app/Http/Resources/PostResource.php, defina a estrutura do recurso:

namespace App\Http\Resources;

use Illuminate\Http\Resources\Json\JsonResource;

class PostResource extends JsonResource
{
    public function toArray($request)
    {
        return [
            'id' => $this->id,
            'title' => $this->title,
            'content' => $this->content,
            'created_at' => $this->created_at,
        ];
    }
}

Passo 7: Controller Post

No arquivo app/Http/Controllers/Api/PostController.php, defina os métodos CRUD:

namespace App\Http\Controllers\Api;

use App\Http\Controllers\Controller;
use App\Models\Post;
use Illuminate\Http\Request;
use App\Http\Requests\StorePostRequest;
use App\Http\Resources\PostResource;

class PostController extends Controller
{
    public function index()
    {
        $posts = Post::all();
        return PostResource::collection($posts);
    }

    public function store(StorePostRequest $request)
    {
        $post = Post::create($request->validated());
        return new PostResource($post);
    }

    public function update(StorePostRequest $request, Post $post)
    {
        $post->update($request->validated());
        return new PostResource($post);
    }

    public function destroy(Post $post)
    {
        $post->delete();
        return response(null, 204);
    }
}

Passo 8: Configurar as Rotas

No arquivo routes/api.php, defina as rotas da API:

use App\Http\Controllers\Api\PostController;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;

Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
    return $request->user();
});

Route::apiResource('posts', PostController::class)->except([
    'create', 'show', 'edit'
]);

Passo 9: Executar a Aplicação Laravel

Execute o servidor:

php artisan serve

Vídeo

Clique aqui para assistir ao vídeo deste tutorial

Conclusão utilizando Laravel

Seguindo estes passos, você terá uma aplicação CRUD RESTful utilizando Laravel 11, seguindo as melhores práticas. Certifique-se de testar todos os endpoints e validar as respostas da API com softwares como Postman.

E não se esqueça de aproveitar a oferta limitada para se inscrever no meu curso de desenvolvimento web para iniciantes! Saiba mais clicando aqui!