devfzn
eea515c805
token.class.php: creacion de clase y metodo para desctivar tokens todos los tokens con fecha inferior a la del momento de ejecución. actualizar_tokens.php: creación de archivo para ser llamado por 'cron'. |
||
---|---|---|
apirest_yt | ||
imgs | ||
original | ||
.gitignore | ||
.htaccess | ||
README.md |
Apuntes PHP REST API
Proyecto realizado con fines didácticos, con el propósito de comprender la creación y funcionamiento de una API básica utilizando Php y Apache. Además de servir de introducción los mismos.
Las clases, metodos y funciones creadas dentro de este proyecto cumplen este propósito. No estan diseñadas para correr en un entorno de producción.
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
Editar archivo de configuración de apache sudoedit /etc/apache2/apache2.conf
Agregar:
<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.
Desactivar tokens
Cron Job para cambiar estado de tokens a Inactivo
Agregar tarea: crontab -e
ej. Ejecutar tarea cada 5 minutos.
# m h dom mon dow command
*/5 * * * * curl localhost/php_apirest/apirest_yt/cron/actualizar_tokens &>/dev/null