Ir al contenido principal

Crear una api rest con autentificación usando laravel 7 o superior

1- Creamos un proyecto nuevo

composer create-project --prefer-dist laravel/laravel mi-api

Creamos una base de datos usando phpmyadmin llamada mi-api y

En nuestro archivo .env

 DB_CONNECTION=mysql
    DB_HOST=127.0.0.1
    DB_PORT=3306
    DB_DATABASE=mi-api
    DB_USERNAME=root
    DB_PASSWORD=

2- Creamos el modelo y la migración

$ php artisan make:model Article -m
La nueva migración se generará en el directorio ./mi-api/database/migrations Vamos a añadir los campos title y body al modelo editando la función up():


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

Ejecutamos la migración para crear los campos en la base de datos
$ php artisan migrate
Abrimos el modelo Articulo para hacer que los campos sean editables ./mi-api/app/Article.php

namespace App;
use Illuminate\Database\Eloquent\Model;
class Article extends Model
{
protected $fillable = ['title', 'body'];
}


3- Poblando las tablas de artículos y usuarios

Vamos a poblar o sembrar (‘seed‘ en inglés) las tablas con datos de prueba para poder testear nuestra aplicación. LARAVEL trae FAKER, una librería que nos ayuda en esta tarea. En español esto rellenara las tablas de nuestra base de datos con datos aleatorios, Para crear nuestra primera siembra:

$ php artisan make:seeder ArticlesTableSeeder
./mi-api/database/seeds/ArticlesTableSeeder.php. Lo editamos


use App\Article;
use Illuminate\Database\Seeder;
class ArticlesTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
// Let's truncate our existing records to start from scratch.
Article::truncate();
$faker = \Faker\Factory::create();
// And now, let's create a few articles in our database:
for ($i = 0; $i < 50; $i++) {
Article::create([
'title' => $faker->sentence,
'body' => $faker->paragraph,
]);
}
}
}
Ejecutamos el comando seed para realizar la siembra:

$ php artisan db:seed --class=ArticlesTableSeeder

Comentarios