Buongiorno a tutti,
come si fa a realizzare un API che opera su più tabelle?
Per fare un esempio, ho una tabella "libri" e una tabella "traduzione_libri" che contiene gli id inseriti nella tabella "libri"; se volessi fare un GET mi basterebbe fare un JOIN nella query.
Se volessi creare un nuovo libro attraverso un API POST, io ricevo nel mio file create.php tutte le variabili poi inserisco i dati generali dentro alla tabella "libri" e per inserire le traduzioni nella tabella "traduzione_libri" come dovrei fare? Posso mettere 2 query diverse nella stessa funzione?
In generale non è necessario che API e tabelle del database (o il posto dove salvi i dati) abbiano la stessa forma. In progetti grossi il modello dell'API è spesso diverso da quello del database apposta, perché esporre direttamente le tabelle vuol dire creare dipendenze esterne, che rendono più difficile il lavoro nel futuro.
Quando il tuo API endpoint riceve i dati per creare un "qualcosa", sta a te scrivere il codice che prende quei dati e li salva nel posto giusto, siano una o cinque tabelle.
Ultima modifica di dreadnaut : 29-06-2023 alle ore 15.33.14
Buonasera, mi capita spesso di dover inserire con la stessa funzione due record in tabelle diverse, di norma padre/figlio (master/detail come le fatture).
Ho letto qualcosa sulle API ma sono un argomento troppo complesso per me, quindi, sebbene non sia certo certo si tratti della soluzione migliore, ma certamente la più usata e pratica, di solito faccio così :
Creo la connessione PDO, apro una transazione (così sono certo che padre e figlio/figli siano registrati tutto o niente), eseguo le 2 query chiudo la transazione COMMIT ... finito.
Nella gestione degli errori eseguo il roll-back della transazione per essere certo che in ogni caso la transazione non resti sospesa.
Ripeto non sono certo che questo sia il metodo migliore, ma certamente è semplice e funziona.