MP08 - UF2: Mòduls Rewrite i Headers
Afegim configuracions
És possible que el nostre servidor php no estigui preparat per a l'execució d'algunes comandes específiques per a treballar en mode API. Per això possiblement ens falta instal·lar algun mòdul. Vegem-ne alguns.
Mòdul rewrite
Recordeu-vos que per treballar en el MVC en backend vàrem habilitar el mòdul rewrite
i calia donar permís al directori on es troba el .htaccess per tal que el fitxer .htaccess pogués habilitar-lo.
a2enmod rewrite
service apache2 restart
<Directory /var/www/html/alumne08/API>
AllowOverride FileInfo
</Directory>
.htaccess
RewriteEngine On
RewriteBase /alumne08/API/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* server.php/$0 [L]
Mòdul headers
En el cas en què estiguem desenvolupant una API, és possible que només donem servei a les peticions que provenen del mateix domini on tenim la API que dona servei.
Si volem permetre l'accés a la API des d'altres ubicacions, cal habilitar el mòdul headers
i configurar el servidor apache, amb el mateix fitxer .htaccess
per tal de permetre-ho.
Provant un servidor de backend que proveeix una API a la web http://localhost/alumne08/API/cp/17003
que ens proveeix
de les dades dels codis postals 17003 no podrà ser accedit des del servidor de VUE que tenim a http://localhost:8000/alumne08
, ja que els seus dominis o millor dit orígens, no són els mateixos.
Per a permetre l'accés caldrà, doncs:
habilitar el mòdul headers
L'ajuda del mòdul headers la trobareu aquí.
Per això, caldrà anar al servidor web i habilitar el mòdul amb les següents comandes:
a2enmod headers
service apache2 restart
modificar la configuració del directori del backend
L'ajuda global de CORS la trobem aquí.
L'ajuda pel problema de CORS la trobareu aquí.
Una vegada habilitat, cal indicar des de quins orígens acceptem les peticions. Per això caldrà configurar al directori
on tenim els fitxers del backend, o al fitxer .htaccess
del directori, la següent directiva:
Header [condition] add|append|echo|edit|edit*|merge|set|setifempty|unset|note header [[expr=]value [replacement] [early|env=[!]varname|expr=expression]]
header
serà Access-Control-Allow-Origin
i si volem permetre accés des de tot arreu, la línia a afegir serà
Header set Access-Control-Allow-Origin '*'
Si, de moment només volem permetre l'accés des del nostre propi PC tal com ho tenim configurat, podem afegir la línia:
Header set Access-Control-Allow-Origin 'http://localhost:8080'
Per fer la prova i habilitar per totes les peticions podem posar un asterisc al lloc
cURL
cURL és un projecte de software consistent en una llibreria (libcurl
) orientat a la transferència de fitxers. Suporta els protocole ftp, ftps, http, https, tftp, scp, sftp, telnet, DICT, FILE i LDAP entre altres.
cURL suporta certificats HTTPS, HTTP POST, HTTP PUT, pujades FTP, Kerberos, pujades mitjançant formulari HTTP, proxies, cookies, autenticació mitjançant usuari i contrasenya (Basic, DIgest, NTLM i Negotiate per a HTTP i kerberos 4 per a FTP), continuació de transferència de fitxers, tunneling de proxy HTTP i altres prestacions. cURL és de codi obert, programari lliure distribuït sota la Llicència MIT.
El principal propòsit i ús per a cURL és automatitzar transferències de fitxers o seqüències d'operacions no supervisades. És, per exemple, una eina vàlida per a simular les accions d'usuaris en un navegador web.
Per a instal·lar cURL i fer-lo disponible al nostre servidor caldrà executar el procés d'instal·lació
apt install curl
apt install php-curl
service apache2 restart