Serveis web amb Laravel

De Cacauet Wiki
Salta a la navegació Salta a la cerca

Per poder seguir amb normalitat aquest article cal haver llegit i treballat Laravel.


Perquè Laravel per a serveis web?

No és imprescindible utilitzar Laravel per implementar un servei web. Ens és convenient pels següents motius:

  1. En el curs de M7 de DAW estem treballant amb aquest framework i ens interessa aprofundir el seu coneixement.
  2. Integrarem la part del frontend de la nostra web juntament amb la API que farem.
  3. Laravel facilita l'accés a la base de dades a través del ORM Eloquent, que resulta molt útil.


Primera prova de la API

Totes les funcions que vulguem implementar per al nostre sistema hem de començar per indicar-les al arxiu de rutes:

routes/api.php

De fet, les podríem implementar al mateix arxiu. Quan es compliquin, però, convindrà crear un controlador com vam fer al tutorial de Laravel.

Afegiu el següent codi a routes/api.php:

Route::get('/ping', function(Request $request) {
    return "pong! :)";
});

Poseu en marxa el servidor i proveu la funció amb:

$ curl localhost:8000/api/ping
pong! :)super@HPi5-07:~/dev/laraveltest1$ 

Noteu que:

  • Encara que hem definit la ruta "/ping", per poder-la cridar hem de fer "/api/ping". Ve predefinit pel Laravel, tot i que no té perquè ser així.
  • Ens contesta el què hem posat al RETURN final
  • No retorna HTML, retorna un text que pot ser qualsevol cosa
  • No hi ha \n final (s'enganxa amb el prompt de la shell)


Exemples de API: laravel-karaoke

En el projecte karaoke en Laravel, el podeu veure aquí:

Recordem que per crear un controller amb Laravel ho fem amb (per exemple):

$ php artisan make:controller ApiController

Si mireu TemaController pareu atenció que per poder fer crides com TemaController::fet($id) , necessitem que siguin funcions estàtiques (static).

Ara, per poder mirar el nº de vots, a routes/api.php tindrem:

Route::get('/nvots/{id}', function(Request $request, $id) {
    return TemaController::nvots( $id );
});


Especificacions d'una API

És molt important especificar adequadament una API per tal que la pugui fer servir molta gent.