Implementación de API REST con php
|
||
---|---|---|
apirest_yt | ||
imgs | ||
original | ||
.gitignore | ||
.htaccess | ||
README.md |
Apuntes PHP REST API
Requerimientos
MariaDB, Apache y PHP. Opcional PhpMyAdmin
sudo apt install mariadb-server apache2 php-mysql python3-mysqldb php php-cli \
php-curl php-gd php-json php-mbstring php-mysql php-zip
# opcional
sudo apt install phpmyadmin
sudo systemctl enable mysql
Configuracion Apache2
Agregar user a www-data
sudo usermod -a -G www-data $USER
Crear regla
Ejemplo usando symlink html
a $HOME/projects/apirest
en vez de usar el
directorio /var/www/html
.
cd /var/www/
sudo ln -s $HOME/projects/apirest html
/etc/apache2/apache2.conf
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
# Para usar phpmyadmin, agregar al final
Include /etc/phpmyadmin/apache.conf
Activar modulo rewrite
Para usar .htaccess
específico del proyecto.
sudo a2enmod rewrite
sudo systemctl restart apache2
¿Como mostrar errores en php? stackoverflow.
Agregar la sgte. linea en .htaccess
php_flag display_errors 1
O modifcar el/los parametro(s) en /etc/php/8.1/php.ini
error_reporting = E_ALL
display_errors = On
Extension RESTED para Firefox
Inicio del proyecto
Crear y poblar base de datos, según archivo ./original/database/apirest.sql
.
Crear archivo de configuración en la ruta ./<projecto>/clases/conexion/config
.
{
"conexion":{
"server" : "127.0.0.1",
"user" : "<USER>",
"password" : "<PASWORD>",
"database" : "apirest",
"port" : "3306"
}
}
Creación de token
Combinación de 2 funciones de php para generar un token único en <proyecto>/clases/auth.class.php
- Función bin2hex devuelve
un
string
hexadecimal. - Función openssl_random_pseudo_bytes