Diferència entre revisions de la pàgina «Serveis web amb Laravel»

De Cacauet Wiki
Salta a la navegació Salta a la cerca
(Es crea la pàgina amb «Per poder seguir amb normalitat aquest article cal haver llegit i treballat Laravel. == Perquè Laravel per a serveis web? == No és imprescindible utilitzar L...».)
 
Línia 16: Línia 16:
 
De fet, les podríem implementar al mateix arxiu. Quan es compliquin, però, convindrà crear un controlador com vam fer al tutorial de [[Laravel]].
 
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''':
 +
<syntaxhighlight lang="php">
 +
Route::get('/ping', function(Request $request) {
 +
    return "pong! :)";
 +
});
 +
</syntaxhighlight>
 +
 +
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'')
 +
 +
<br>
 +
 +
== Exemples de API: laravel-karaoke ==
 +
En el projecte karaoke en Laravel, el podeu veure aquí:
 +
* [https://github.com/emieza/laravel-karaoke/commit/edb2cbdf527d056f8caf52b0bf4cf1725f6998c5 Versió amb el codi al mateix api.php]. Es pot fer, però és una solució una mica "guarrilla"
 +
* [Versió amb el codi en un controller]. Només veiem les rutes, però és raonable que no posem mogollón de codi aquí, sinó al controller.
 +
 +
<br>
 +
 +
== Especificacions d'una API ==
 +
És molt important especificar adequadament una API per tal que la pugui fer servir molta gent.
  
 
<br>
 
<br>

Revisió del 16:39, 9 març 2017

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í:

  • Versió amb el codi al mateix api.php. Es pot fer, però és una solució una mica "guarrilla"
  • [Versió amb el codi en un controller]. Només veiem les rutes, però és raonable que no posem mogollón de codi aquí, sinó al controller.


Especificacions d'una API

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