Visualizzazione risultati 1 fino 3 di 3
Like Tree1Likes
  • 1 Post By dreadnaut

Discussione: API su tabelle multiple

  1. #1
    tuttainformatica non è connesso Utente giovane
    Data registrazione
    05-03-2020
    Messaggi
    55

    Predefinito API su tabelle multiple

    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?

    Grazie
    Ciao

  2. #2
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    La domanda è un po' ad alto livello

    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
    laravista likes this.

  3. #3
    kairos2020 non è connesso Utente giovane
    Data registrazione
    16-04-2020
    Residenza
    Castegnato (BS)
    Messaggi
    52

    Predefinito

    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.

    Buona serata

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •