Python Restfull API GAzie DB
Installazione
- PIP:
pip install py_restfull_gazie
Adattare GAzie a CRUD PHP API
Procedure da Eseguire Su DB GAzie:
Prima di procedere occorre che il DB GAzie si pronto ad usare CRUD PHP API inserendo in tabella una chiave primaria 'id'.
Utilizzare lo script seguento per farlo.
DELIMITER //
DROP PROCEDURE IF EXISTS AddIdPrimaryKeyToGazie //
CREATE PROCEDURE AddIdPrimaryKeyToGazie()
BEGIN
-- =========================================================================
-- 1. TUTTE LE DICHIARAZIONI (Devono stare in cima)
-- =========================================================================
DECLARE done INT DEFAULT FALSE;
DECLARE current_table VARCHAR(255);
DECLARE old_pk_columns VARCHAR(512);
-- Cursore per escludere tabelle con 'id' o con qualsiasi altro AUTO_INCREMENT
DECLARE table_cursor CURSOR FOR
SELECT t.TABLE_NAME
FROM information_schema.TABLES t
WHERE t.TABLE_SCHEMA = DATABASE()
AND t.TABLE_NAME LIKE 'gaz_%'
AND NOT EXISTS (
SELECT 1
FROM information_schema.COLUMNS c
WHERE c.TABLE_SCHEMA = DATABASE()
AND c.TABLE_NAME = t.TABLE_NAME
AND c.COLUMN_NAME = 'id'
)
AND NOT EXISTS (
SELECT 1
FROM information_schema.COLUMNS c
WHERE c.TABLE_SCHEMA = DATABASE()
AND c.TABLE_NAME = t.TABLE_NAME
AND c.EXTRA LIKE '%auto_increment%'
);
-- L'handler deve essere l'ultima cosa dichiarata
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
-- =========================================================================
-- 2. ISTRUZIONI ESEGUIBILI
-- =========================================================================
-- Creazione della tabella temporanea per il LOG
DROP TEMPORARY TABLE IF EXISTS temp_log_alter_tables;
CREATE TEMPORARY TABLE temp_log_alter_tables (
id INT AUTO_INCREMENT PRIMARY KEY,
eseguito_alle TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
tabella_modificata VARCHAR(255),
query_eseguita TEXT
);
OPEN table_cursor;
read_loop: LOOP
FETCH table_cursor INTO current_table;
IF done THEN
LEAVE read_loop;
END IF;
-- Recupera dinamicamente le colonne che compongono l'attuale chiave primaria
SELECT GROUP_CONCAT(COLUMN_NAME SEPARATOR ', ')
INTO old_pk_columns
FROM information_schema.KEY_COLUMN_USAGE
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = current_table
AND CONSTRAINT_NAME = 'PRIMARY';
-- Se esiste una vecchia chiave primaria, procediamo
IF old_pk_columns IS NOT NULL THEN
SET @dynamic_sql = CONCAT(
'ALTER TABLE `', current_table, '` ',
'DROP PRIMARY KEY, ',
'ADD COLUMN `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST, ',
'ADD UNIQUE KEY `uk_', current_table, '_old_pk` (', old_pk_columns, ');'
);
-- Scrittura nel LOG
INSERT INTO temp_log_alter_tables (tabella_modificata, query_eseguita)
VALUES (current_table, @dynamic_sql);
-- Esecuzione della query
PREPARE stmt FROM @dynamic_sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END IF;
END LOOP;
CLOSE table_cursor;
-- 3. Stampa a schermo del risultato finale
SELECT * FROM temp_log_alter_tables;
-- Pulizia finale
DROP TEMPORARY TABLE IF EXISTS temp_log_alter_tables;
END //
DELIMITER ;
Chiamare la Procedura
CALL AddIdPrimaryKeyToGazie();
Uso
Configurazione
Per la configurazione occore un file .env:
# Configurazione generica
PREFIX_API=/contabile
GAZIE_URL=http://127.0.0.1:8082/modules/api/index.php
APP_TOKEN=test-token
PORT_EXPOSE=5002
DEVELOPMENT=true
Eseguire lo script api:
python -m py_restfull_gazie.main
Sia avviera' il server restfull api con swagger.
Release files for py-restfull-gazie 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| py_restfull_gazie-0.1.1.tar.gz | 27.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| py_restfull_gazie-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 70.9 kB
Release files / py_restfull_gazie-0.1.1.tar.gz
| Download URL | py_restfull_gazie-0.1.1.tar.gz |
|---|---|
| Size | 27.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ac5cbe901b89d2ce6125e2c7b80961ca080e611f36f5c11a774db38294dab6c1
|
|
BLAKE2b-256 checksum How to use checksums |
556316c0375000c52eb3ae2f9030714b51d342fcbd87a3c1facf67bba1132f34
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / py_restfull_gazie-0.1.1-py3-none-any.whl
| Download URL | py_restfull_gazie-0.1.1-py3-none-any.whl |
|---|---|
| Size | 43.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d5daf2ed9da3b38815a0d71b9fcfde3c9d039580dd82ecff3f7a8e8b3badba58
|
|
BLAKE2b-256 checksum How to use checksums |
8814bc7d3c2c4b17ce4f00c0a11a30cbcb67712a329c7a5306655a5df2b72ac9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|