Implementación de API REST con php
devfzn
42771264b5
Pendientes: update, y usar función actualizarToken respuestas.class.php: agregada función error_401 |
||
---|---|---|
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 archivo .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 sql
en ./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 archivo
<proyecto>/clases/auth.class.php
.
- Función bin2hex devuelve un string hexadecimal.
- Función openssl_random_pseudo_bytes.