Sortu REST API bat autentikazioarekin Laravel erabiliz 1.atala

HELBURUA

Egungo PHP framework ezagunenetakoa den Laravel-i buruzko artikulu-sorta bateko lehenengo sarrera da hau.

Artikulu-sorta honen helburua Laravel 5.5 erabiliz autentikazioa izango duen REST API bat eraikitzen ikastea da. Horretarako Composer, PHP pakete eta menpekotasunen kudeatzailea, eta Artisan, Laravel-ekin batera datorren komando-interpretatzailerako interfazea erabiliko ditugu.

Sortuko dugun API-ak Erabiltzaileak eta Artikuluak sortzea, kontsultatzea, eguneratzea eta ezabatzea ahalbidetuko du, eta ekintza hauek guztiak soilik dei autentikatuen bidez egin ahal izango dira (sisteman erregistratutako erabiltzaileek bakarrik burutu ahal izango dituzte):

  • Artikulua:
    • Izenburua
    • Gorputza
    • Argitaratze-data
  • Erabiltzailea:
    • Izena
    • Helbide elektronikoa
    • Pasahitza

REST API eraikitzeko beharrezkoa den eta gida honetan agertzen den kode guztia GitHub-en dago eskuragarri.

EDUKIA

Lehenengo artikulu honetan puntu hauek ikusiko ditugu:

AURRETIKO BALDINTZAK

1. URRATSA: LARAVEL APLIKAZIO BATEN OINARRIZKO KONFIGURAZIOA

Komando-lerrotik, gure proiektuaren direktorioan kokatuko gara eta bertatik Laravel instalatuko dugu. Horretarako, Composer komando hau erabiliko dugu:

$ composer global require laravel/installer

Laravel aplikazio berriaren egitura sortuko dugu hau idatziz:

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

Eta hau eginda, badugu dena zerbitzaria abian jarri eta aplikazioa ondo dabilen probatzeko:

    $ cd laravel-api
    $ php artisan serve
      Laravel development server started: http://127.0.0.1:8000
Laravel - Hasierako Pantaila
Laravel – Hasierako Pantaila

2. URRATSA: DATU-BASEAREKIN KONEKTATZEA

Aplikazioaren egitura sortzean, lan egiten ari garen proiektuaren direktorioan karpeta berri bat sortu da, “laravel-api” izena izango duena, eta ondorengo egiturarekin:

Laravel - Direktorio-egitura
Laravel – Direktorio-egitura

Aplikazioa datu-basean sar dadin egiaztatze-datuak zehaztu beharko ditugu. Datu-basea aldez aurretik sortuta izango dugu, eta egiaztatze-datuak sartzeko aplikazioaren erroko direktorioan dagoen .env fitxategia editatuko dugu:

    DB_CONNECTION=mysql
    DB_HOST=127.0.0.1
    DB_PORT=3306
    DB_DATABASE=laravelapi
    DB_USERNAME=username
    DB_PASSWORD=********

Artikuluen data-eredua eta lotutako migrazioa eraikitzeko, Artisan komando hau erabiliko dugu:

$ php artisan make:model Article -m

-m aukera –migration-en laburdura da, Artisan-i geure ereduarentzat automatikoki sortzeko adierazten diona.

Laravel-en migrazioek datu-basearen bertsio-kontrol gisa funtzionatzen dute, eta oso baliagarriak dira aplikazioaren data-eskema aldatu eta partekatzeko.

Instalatzean, Laravel-ek bi migrazio sortzen ditu: creates_users_table eta create_passwords_reset_table. Azken hori ez dugu erabiliko, baina ‘users‘ oso baliotsua izango zaigu gida honetan.

Migrazio berria ./laravel-api/database/migrations direktorioan sortuko da:

up() funtzioa editatuko dugu ereduari ‘Izenburua‘ eta ‘Gorputza‘ eremuak txertatzeko:

string metodoak VARCHAR motako zutabe bat sortuko du, eta text-ek TEXT motako bat.

Aldaketa hauek guztiak gure datu-basean ezartzeko komando hau exekutatuko dugu:

$ php artisan migrate

Gure eredura itzuliko gara Artikulu bakoitzaren eremu editagarriak zehazteko. Horretarako Article klasearen $fillable eremua erabiliko dugu, ./laravel-api/app/Article.php fitxategian automatikoki sortu dena:

3. URRATSA: ARTIKULU ETA ERABILTZAILEEN TAULAK BETETZEN

Aplikazioa probatu ahal izateko, datu-basearen taulak fikziozko datuez hazi edo populatuko dugu (ingelesez ‘seed‘ esan ohi da). Laravel Faker-ekin dator, lan hau egiten laguntzen diguna. Gure lehenengo ereintza sortzeko:

$ php artisan make:seeder ArticlesTableSeeder

Komando hau amaitzen denean, fitxategi berri bat izango dugu: ./laravel-api/database/seeds/ArticlesTableSeeder.php. Editatuko dugu funtzionalitatea emateko, itxura honekin utzi arte:

Ereintza exekutatzeko ‘seed‘ komandoa erabiliko dugu:

$ php artisan db:seed --class=ArticlesTableSeeder

Datu-basean ‘Article‘ taula aztertzen badugu, 50 erregistro dituela ikusiko dugu:

Artikuluen taula ereintza egin eta gero
Artikuluen taula ereintza egin eta gero

Prozesu bera errepikatuko dugu Erabiltzaileekin. Lehenik eta behin, ereintza sortuko dugu:

$ php artisan make:seeder UsersTableSeeder

Ondoren, Erabiltzaileak hazteko kodea prestatuko dugu:

Eta amaitzeko, ereintza exekutatuko dugu:

$ php artisan db:seed --class=UsersTableSeeder

Ondorioz, datu-basean uzta ikusi ahal izango dugu:

Erabiltzaileen taula ereintza egin eta gero
Erabiltzaileen taula ereintza egin eta gero

4. URRATSA: “CRUD” BIDE IZENAK ETA KONTROLATZAILEAK

Aurreko urratsetan Laravel aplikazioaren oinarrizko egitura sortu dugu, datu-basearekin lotu dugu eta taulak populatu ditugu ereintza batzuk eginez.

Laugarren urrats honetan ohiko CRUD funtzionalitatea txertatuko diogu aplikazioari: datu-baseko erregistroak sortzea (Create), berreskuratzea (Retrieve), eguneratzea (Update) eta ezabatzea (Delete).

Lehendabizi, bide-izenak (routes) ezarriko ditugu. Bide-izenak deskribatutako operazioak burutzeko gure aplikazioari helaraziko zaizkien URL-ak dira. Laravel-en oso erraza da bide-izenak ezartzea, soilik ./laravel-api/routes/api.php fitxategia editatu behar da:

Dena txukunago izateko, kode hau bere kontrolatzailera mugituko dugu. Kontrolatzailea sortzeko Artisan komando hau erabiliko dugu:

$ php artisan make:controller ArticleController

Eta kodea ./laravel-api/app/Http/Controllers/ArticleController.php sortutako fitxategian kopiatuko dugu:

./laravel-api/Routes/api.php fitxategia behean zehazten den bezala geratuko da, bide-izen bakoitzeko kontrolatzailea eta deituko den metodoaren izena zehaztuta:

Kontrolatzailearen metodoek datuak JSON formatuan itzuliko ditu, eta datu horiekin batera HTTP kode bat, bezero aplikazioa prozesatu beharko duena. HTTP koderik ohikoenen artean hauek aurkitu daitezke:

  • 200: OK. Dena ondo joan dela adierazteko kode estandarra. Opzio lehenetsia.
  • 201: Object created. Gordetzeko operazioetan oso baliagarria.
  • 204: No content. Ekintza bat arrakastaz burutu denean, baina ez dago ezer itzultzeko.
  • 206: Partial content. Oso baliagarria emaitzak orrialdekatuta itzultzen direnean.
  • 400: Bad request. Eskaera batek balidazioa gainditzen ez duenerako erantzun estandarra.
  • 401: Unauthorized. Autentikazioa beharrezkoa da.
  • 403: Forbidden. Erabiltzailea autentikatu egin da, baina ez dauka baimenik eskatutako ekintza burutzeko.
  • 404: Not found. Laravel-ek automatikoki itzultzen du baliabide bat aurkitzen ez denean.
  • 500: Internal server error. Emaitza hau ez litzateke inoiz esplizituki itzuli beharko, baina ezusteko bat gertatuz gero erabiltzaileak erantzun hau jasoko du.
  • 503: Service unavailable. Berez oso deskripzio esanguratsua du. Gure aplikazioak ez luke kode hau esplizitoki itzuli beharko.

5. URRATSA: API-a PROBATZEN (POSTMAN)

Lau urrats hauen instrukzioak jarraituta, artikuluen oinarrizko kudeaketa egiteko API erabat funtzionala izango dugu. Dena zuzen egiten duela egiaztatzeko eta API-a funtzionatzen ikusi ahal izateko Postman erabiliko dugu.

Postman API-ak probatzeko tresna da, interfaze grafiko oso intuitiboa eta erabiltzeko erraza duena. Postman erabiltzen hasteko modu errazena Chrome nabigatzailerako hedapena instalatzea da, gomendioa gure sistema eragiletarako aplikazioa instalatzea izan arren, hedapenaren sostengua eten egin dutelako.

Behin tresna instalatu eta abiarazita, erabilera oso erraza da: URL-ak helbide barran sartu behar dira, eta metodoa ezkerreko zerrendan hautatu eskaera mota aukeratzeko (GET, POST, PUT, DELETE, e.a).

Datu-basetik Artikulu guztiak berreskuratu nahi izanez gero, gure API-ari dei egingo diogu GET metodoa erabiliz, 4. urratsean gure bide-izenetan eta kontrolatzaileetan konfiguratu dugun bezala:

[GET] http://localhost:8000/api/articles/

Postman - Artikulu guztiak berreskuratzea [GET]
Postman – Artikulu guztiak berreskuratzea [GET]
Beste bide-izenak era testatu ditzakegu:

  • 12 identifikatzailea duen artikulua berreskuratzeko:
[GET] http://localhost:8000/api/articles/12
Postman - Artikulu bat berreskuratzea [GET]
Postman – Artikulu bat berreskuratzea [GET]
  • Artikulu berri bat sortzeko:
[POST] http://localhost:8000/api/articles/

title‘ eta ‘body‘ eremuen balioak zehazteko, giltza-balioa bikoteak ‘Body‘ atalean txertatu beharko ditugu.

Postman - Artikulu bat sortzea [POST]
Postman – Artikulu bat sortzea [POST]
  • 51 identifikatzailea duen artikuluaren izenburua aldatzeko:
[PUT] http://localhost:8000/api/articles/51

Giltza-balioa bikotea “Body” atalean txertatu beharko dugu.

Postman - Artikulu bat eguneratzea [PUT]
Postman – Artikulu bat eguneratzea [PUT]
  • 51 identifikatzailea duen artikulua ezabatzeko:
[DELETE] http://localhost:8000/api/articles/51
Postman - DELETE
Postman – DELETE

LABURPENA

Sortu REST API bat autentikazioa Laravel erabiliz” bildumaren lehenengo artikulu honetan Laravel aplikazio baten oinarrizko egitura sortu, datu-basearekin lotu, taulak populatu eta CRUD funtzio basikoak burutzeko behar diren bide-izenak eta kontrolatzaileak ezartzen ikasi dugu.

Horretarako tresna batzuk erabili behar izan ditugu: Composer PHP menpekotasun eta pakete kudeatzailea, Artisan komando-lerrorako interfaza, eta Postman REST API-ak probatzeko aplikazioa.

Hurrengo artikuluetan API-aren bidez eta Laravel erabiliz autentikazioa, erabiltzaileak erregistratu eta identifikatzeko bide-izenak eta kontrolatzaileak, eta API-rako sarbidea murrizteko middleware-ak nola ezarri eta erabili ere ikusiko dugu.

Edozein zalantza edo arazo baldin baduzu urratsaren bat ulertzeko, utzi iruzkin batean eta erantzungo dizut. Eta dagoeneko eskarmentua baldin badaukazu REST API-ak egiten edo Laravel erabiltzen, partekatu zure esperientzia eta artikulu honi buruzko iritzia komentario bat utziz. Ikasi dezagun elkarrekin!

Software LibreaWeb Garapena