Implementación de API REST con php
Go to file
devfzn eea515c805
+: token.class.php y cron/actualizar_tokens
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'.
2023-03-26 21:14:03 -03:00
apirest_yt +: token.class.php y cron/actualizar_tokens 2023-03-26 21:14:03 -03:00
imgs init php rest api 2023-03-24 12:41:27 -03:00
original init php rest api 2023-03-24 12:41:27 -03:00
.gitignore init php rest api 2023-03-24 12:41:27 -03:00
.htaccess init php rest api 2023-03-24 12:41:27 -03:00
README.md +: token.class.php y cron/actualizar_tokens 2023-03-26 21:14:03 -03:00

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

img


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.

Metodos HTTP

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