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:
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
Ajustes nos models Buyer e Seller:
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
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
Definindo os atributos em nosso model, de acordo com o diagrama.
Definindo o tamanho máximo das strings no arquivo “app/Providers/AppServiceProvider.php”:
No próximo artigo, vamos continuar com o Migrations. Te espero lá!