The Blog

API RESTful com Laravel – Rotas e Models (2/4)


Vamos dar continuidade ao desenvolvimento de uma API RESTful com Laravel. Nos passos anteriores podemos ver a preparação do ambiente. Houveram diversas dificuldades quanto a questão da preparação do Homestead com o Vagrant, devido a isso foi necessária a divisão em duas partes dos passos.

Diagrama

Vamos utilizar o diagrama abaixo para criar o sistema:

Diagrama das funcionalidade do sistema

Artisan: Criando models e controllers

Abra o terminal dentro da pasta do projeto “C:\Projetos\restful-api-php” e entre via SSH com o comando “vagrant ssh” e depois navegue até a pasta do projeto “cd code”. Vamos criar os models utilizando os comandos a seguir:

php artisan make:model Buyer
php artisan make:model Seller
php artisan make:model Category -m
php artisan make:model Product -m
php artisan make:model Transaction -m
Retorno dos comando de criação dos models

Ajustes nos models Buyer e Seller:

Buyer Model
Seller Model

Criando os controllers:

php artisan make:controller Buyer/BuyerController -r
php artisan make:controller Seller/SellerController -r
php artisan make:controller Category/CategoryController -r
php artisan make:controller Product/ProductController -r
php artisan make:controller Transaction/TransactionController -r
php artisan make:controller User/UserController -r
Retorno dos comandos de criação dos controllers

Rotas

Definindo as rotas no arquivo “routes/api.php”:

use App\Http\Controllers\Buyer\BuyerController;
use App\Http\Controllers\Seller\SellerController;
use App\Http\Controllers\Category\CategoryController;
use App\Http\Controllers\Product\ProductController;
use App\Http\Controllers\Transaction\TransactionController;
use App\Http\Controllers\User\UserController;

/**
 * Buyers
 */
Route::resource('buyers', BuyerController::class)->only([
    'index', 'show'
]);

/**
 * Sellers
 */
Route::resource('sellers', SellerController::class)->only([
    'index', 'show'
]);

/**
 * Categories
 */
Route::resource('categories', CategoryController::class)->except([
    'create', 'edit'
]);

/**
 * Products
 */
Route::resource('products', ProductController::class)->only([
    'index', 'show'
]);

/**
 * Transactions
 */
Route::resource('transactions', TransactionController::class)->only([
    'index', 'show'
]);

/**
 * Users
 */
Route::resource('users', UserController::class)->except([
    'create', 'edit'
]);

Models

No prompt de comando, execute o seguinte comando:

php artisan route:list
Retorno dos comandos de listagem de rotas

Definindo os atributos em nosso model, de acordo com o diagrama.

Conteúdo do model buyer
Conteúdo do model seller
Conteúdo do model category
Conteúdo do model product
Conteúdo do model transaction
Conteúdo do model user (1/2)
Conteúdo do model user (2/2)

Definindo o tamanho máximo das strings no arquivo “app/Providers/AppServiceProvider.php”:

Conteúdo do arquivo AppServiceProvider.php

No próximo artigo, vamos continuar com o Migrations. Te espero lá!