GraphQL - Devo esporre le tabelle dei collegamenti?

6

Sto sperimentando la conversione di un'API in GraphQL e ho un database con relazioni molti-a-molti che vengono archiviate tramite tabelle di collegamenti; qualcosa di simile:

CREATE TABLE accounts
(
  id int,
  last_name varchar,
  first_name varchar
);

CREATE TABLE files
(
  id int,
  content varchar,
  name varchar
);

CREATE TABLE account_file_links
(
  id int,
  account_id varchar,
  file_id varchar,
  can_edit tinyint,
  FOREIGN KEY (account_id) REFERENCES accounts(id)
  FOREIGN KEY (file_id) REFERENCES files(id)
);

Mi chiedo se dovrei esporre questi collegamenti perché sono propri tipi nello schema GraphQL o meno. Quando penso al mio database come un grafico, i nodi sono accounts e reports , mentre i bordi sarebbero account_file_links . Ci sono attributi presenti sul link (in questo esempio, la proprietà can_edit ) che devono essere presentati ai consumatori dell'API.

    
posta TylerAndFriends 24.12.2016 - 16:06
fonte

2 risposte

2

Un'API deve essere progettata per l'utente dell'API, non in base al modo in cui il sistema "accade" per archiviare i dati nel momento in cui viene progettata l'API. Quindi inizia con una serie di esempi su come verrà utilizzata la tua API.

Solo il nome della tabella "account_file_links" rende chiaro che l'utilizzo del database come base del design dell'API non è un buon risultato.

    
risposta data 04.11.2017 - 19:32
fonte
0

I collegamenti stessi sono entità a sé stanti e non vi è alcun motivo per cui non dovresti esporli come oggetti di collegamento.

    
risposta data 05.10.2017 - 19:50
fonte

Leggi altre domande sui tag