Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
L'estensione MSSQL per Visual Studio Code include un'interfaccia utente integrata per il generatore di API dati, quindi è possibile creare endpoint REST, GraphQL e MCP per le tabelle di database SQL senza scrivere file di configurazione o uscire da Visual Studio Code. È possibile selezionare le tabelle da esporre, configurare le autorizzazioni CRUD, scegliere i tipi di API, visualizzare in anteprima la configurazione generata e distribuire un back-end locale basato su Generatore API dati, tutto da un'interfaccia visiva.
Suggerimento
Il generatore di API dati è attualmente in anteprima e potrebbe cambiare in base al feedback. Partecipare alla community in Discussioni su GitHub per condividere idee o segnalare problemi.
Importante
Questa funzionalità presenta limitazioni note, tra cui il supporto solo autenticazione SQL per la distribuzione del contenitore e la compatibilità con tipi di dati con restrizioni. Esaminare Limitazioni note e Problemi noti prima della distribuzione.
Features
L'integrazione di Generatore API dati offre queste funzionalità:
- Selezionare le entità di database (tabelle) da esporre come endpoint API, organizzate per schema con raggruppamento collapsible.
- Configurare le autorizzazioni Create, Read, Update e Delete (CRUD) in modo indipendente per ogni entità.
- Scegliere i tipi di API da generare: REST, GraphQL, MCP o qualsiasi combinazione.
- Configurare le impostazioni avanzate delle entità, inclusi i percorsi REST personalizzati, i nomi dei tipi GraphQL personalizzati e i ruoli di autorizzazione.
- Visualizzare in anteprima la configurazione JSON del generatore di API dati generata in un pannello Definizione di sola lettura.
- Distribuire generatore di API dati in locale come contenitore Docker con controlli automatizzati dei prerequisiti.
- Testare le API in esecuzione direttamente in Visual Studio Code usando il Navigatore Semplice predefinito.
- Usare la chat di GitHub Copilot per configurare le entità tramite prompt del linguaggio naturale.
Prerequisiti
Prima di usare Generatore API dati, verificare che siano soddisfatti i requisiti seguenti:
- L'estensione MSSQL per Visual Studio Code è installata. Per la procedura di installazione, vedere la panoramica dell'estensione MSSQL per Visual Studio Code .
- Viene stabilita una connessione al database attiva tramite l'estensione MSSQL. Per la procedura di connessione, vedere Avvio rapido: Connettersi a un database ed eseguire query su un database con l'estensione MSSQL per Visual Studio Code.
- Docker Desktop è installato e in esecuzione nel computer (obbligatorio per la distribuzione locale).
- (Facoltativo) Le estensioni GitHub Copilot e GitHub Copilot Chat sono installate per la configurazione delle entità assistita dall'intelligenza artificiale.
Costruttore API Dati Aperti
È possibile aprire la visualizzazione di configurazione di Generatore API dati da due punti di ingresso:
In Esplora oggetti fare clic con il pulsante destro del mouse su un nodo del database e selezionare Compila API dati (anteprima)....
Da Progettazione schemi: selezionare il pulsante Api di progettazione (pulsante nell'angolo superiore destro della barra degli strumenti) oppure selezionare l'icona Back-end nel pannello a sinistra.
Viene visualizzata la visualizzazione di configurazione di Generatore API dati, che visualizza le entità di database, le opzioni del tipo di API e i controlli di configurazione.
Selezionare entità
La visualizzazione selezione entità elenca tutte le tabelle del database connesso, raggruppate per schema.
- Ogni riga dello schema è comprimibile e mostra un badge di conteggio che indica il numero di entità abilitate ,ad esempio "3/5".
- Selezionare una casella di controllo a livello di schema per attivare o disattivare tutte le entità nello schema. La casella di controllo supporta la selezione a tre stati: tutto, nessuno o misto.
- Ogni riga di entità visualizza: la casella di controllo per abilitare, il nome dell'entità, la tabella di origine, le caselle di controllo CRUD e un pulsante delle impostazioni.
- La disabilitazione di un'entità rende grigia la riga e disabilita le caselle di controllo CRUD e il pulsante delle impostazioni.
Usare la casella di filtro nella parte superiore per cercare le entità in base al nome, allo schema o alla tabella di origine. Il filtro non fa distinzione tra maiuscole e minuscole e il conteggio abilitato viene aggiornato in base ai risultati filtrati.
Configurare autorizzazioni e tipi di API
Autorizzazioni CRUD
Attivare o disattivare le singole caselle di controllo Crea, Lettura, Aggiornamento ed Elimina per ogni entità. Le caselle di controllo CRUD al livello di intestazione attivano/disattivano quell'azione per tutte le entità abilitate e supportano la selezione a tre stati.
Selezione del tipo di API
Nella parte superiore della visualizzazione di configurazione selezionare i tipi di API da generare:
- API REST: genera endpoint REST con l'interfaccia utente di Swagger per i test.
- GraphQL: Genera gli endpoint GraphQL utilizzando il playground di Nitro GraphQL.
- MCP (Preview): genera endpoint del protocollo del contesto del modello.
- Tutto: seleziona o deseleziona tutti i tipi di API.
Selezionare almeno un tipo di API.
Configurazione avanzata delle entità
Selezionare l'icona a forma di ingranaggio in una riga di entità per aprire la finestra di dialogo Configurazione entità avanzata , in cui è possibile configurare:
- Nome entità: nome usato nelle route e nelle risposte dell'API (per impostazione predefinita è il nome della tabella).
- Ruolo autorizzazione: attiva/disattiva l'autenticazione anonima (nessuna autenticazione necessaria) e l'autenticazione (richiede l'autenticazione utente).
-
Percorso REST personalizzato: override facoltativo per il percorso predefinito
api/entityName. - Tipo GraphQL personalizzato: sovrascrittura facoltativa per il nome del tipo GraphQL predefinito.
Selezionare Applica modifiche per salvare la configurazione o Annulla per ignorare.
Anteprima della configurazione
Selezionare il pulsante Visualizza configurazione nella barra degli strumenti per aprire il pannello Definizione nella parte inferiore della visualizzazione di configurazione. Questo pannello mostra il file di configurazione JSON del generatore di API dati generato in un formato di sola lettura.
Pannello Definizione:
- Riflette la selezione dell'entità corrente, i tipi di API e le impostazioni avanzate.
- Rimane sincronizzato con l'interfaccia utente e la chat di GitHub Copilot: le modifiche apportate in entrambe le posizioni aggiornano immediatamente l'anteprima.
- Include solo le entità abilitate nell'output di configurazione.
- Mostra le sezioni di runtime REST, GraphQL e MCP in base ai tipi di API selezionati.
Selezionare Apri nell'editor per visualizzare la configurazione in una scheda completa dell'editor di Visual Studio Code. Selezionare Copia per copiare la configurazione negli Appunti.
Eseguire la distribuzione in locale con Docker
Il builder di API dati viene distribuito come un contenitore Docker locale. La procedura guidata di distribuzione ti guida attraverso la procedura:
Selezionare il pulsante Distribuisci sulla barra degli strumenti.
Viene visualizzata la finestra di dialogo Distribuisci contenitore DAB che descrive la distribuzione del contenitore locale. Seleziona Avanti.
La schermata Getting Docker Ready esegue i controlli dei prerequisiti in sequenza:
- Controllo dell'installazione di Docker: verifica che Docker sia installato nel sistema.
- Avvio di Docker Desktop: assicura che Docker Desktop sia in esecuzione.
- Controllo del motore Docker: verifica che il motore Docker sia pronto.
Selezionare Avanti per continuare al termine di tutti i controlli.
Viene visualizzata la schermata Impostazioni contenitore :
- Nome contenitore: nome facoltativo per il contenitore Docker (viene fornito un valore predefinito generato automaticamente).
-
Porta: porta in cui esporre l'API (impostazione predefinita:
5000). - Il contenitore riutilizza la stringa di connessione dalla connessione di database attiva.
Selezionare Crea contenitore.
La distribuzione esegue tre passaggi in sequenza: estrazione dell'immagine, avviare il contenitore e verificare la disponibilità.
Al termine della distribuzione, nella procedura guidata vengono visualizzati gli URL dell'endpoint per ogni tipo di API abilitato:
Tipo di API Punto finale Action REST http://localhost:{port}/apiVisualizza Swagger apre l'interfaccia utente di Swagger GraphQL http://localhost:{port}/graphqlNitro apre il GraphQL playground MCP http://localhost:{port}/mcpAggiungi a VS Code scrive la configurazione del server MCP in .vscode/mcp.jsonSelezionare un collegamento per aprire l'interfaccia di test nel Simple Browser integrato di Visual Studio Code.
L'esempio seguente illustra l'interfaccia utente di Swagger per testare gli endpoint REST direttamente in Visual Studio Code:
L'esempio seguente mostra il playground Nitro GraphQL per il test delle query e delle mutazioni GraphQL.
Testare l'API in esecuzione
Dopo la distribuzione, puoi testare le API direttamente dalla finestra di dialogo alla conclusione della distribuzione utilizzando il browser semplice integrato di Visual Studio Code.
REST API
Selezionare Visualizza Swagger per aprire l'interfaccia utente di Swagger, un'interfaccia visiva interattiva per esplorare e testare gli endpoint REST. È possibile esplorare le entità disponibili, visualizzare gli schemi di richiesta e risposta ed eseguire direttamente le chiamate API.
Il generatore di API dati genera gli endpoint REST seguenti per ogni entità abilitata:
| metodo | Punto finale | Descrizione |
|---|---|---|
GET |
/api/{entity} |
Elencare tutti i record per un'entità |
GET |
/api/{entity}/{primaryKey}/{value} |
Recuperare un singolo record tramite chiave primaria |
POST |
/api/{entity} |
Creare un nuovo record |
PUT |
/api/{entity}/{primaryKey}/{value} |
Sostituire un record esistente |
PATCH |
/api/{entity}/{primaryKey}/{value} |
Aggiornare campi specifici in un record |
DELETE |
/api/{entity}/{primaryKey}/{value} |
Eliminare un record |
Per altre informazioni sugli endpoint REST, vedere API REST del generatore di API dati.
GraphQL
Selezionare Nitro per aprire il Nitro playground di GraphQL, dove è possibile scrivere e testare query e mutazioni GraphQL in modo interattivo.
Per altre informazioni sugli endpoint GraphQL, vedere API GraphQL del generatore di API dati.
MCP
Selezionare Aggiungi a VS Code per scrivere la configurazione del server MCP in .vscode/mcp.json. Questa configurazione rende disponibile l'endpoint del generatore di API dati come server MCP in Visual Studio Code. Gli strumenti di intelligenza artificiale, ad esempio GitHub Copilot, possono quindi interagire con il database tramite l'API Data API Builder.
Per altre informazioni su MCP in Visual Studio Code, vedere Usare server MCP in Visual Studio Code.
Test del terminale
È anche possibile testare gli endpoint dal terminale:
API REST:
Ottenere tutti i record da un'entità specifica:
curl http://localhost:{port}/api/{entityName}
Creare un nuovo record (se è abilitata l'autorizzazione Crea):
curl -X POST http://localhost:{port}/api/{entityName} \
-H "Content-Type: application/json" \
-d '{"Column1": "Value1", "Column2": "Value2"}'
GraphQL:
curl -X POST http://localhost:{port}/graphql \
-H "Content-Type: application/json" \
-d '{"query": "{ {entityName} { items { Column1 Column2 } } }"}'
Suggerimento
Sostituire {port} con la porta configurata durante la distribuzione (impostazione predefinita: 5000).
Integrazione di GitHub Copilot
Per gli sviluppatori che preferiscono il linguaggio naturale, GitHub Copilot è integrato nell'esperienza di generatore di API dati. Selezionare il pulsante Chat sulla barra degli strumenti per aprire una sessione di chat GitHub Copilot nel contesto di configurazione di Data API builder. GitHub Copilot e l'interfaccia utente rimangono sincronizzati: le modifiche apportate tramite chat si riflettono immediatamente nell'interfaccia utente e viceversa.
Ecco alcuni prompt di esempio:
"Enable all SalesLT entities for read operations""Expose only the Customer and Product tables with full CRUD permissions""Set all entities in the dbo schema to read-only""Disable the BuildVersion and ErrorLog entities""Can you also enable MCP for the Data API builder API?"
L'esempio seguente mostra GitHub Copilot che abilita le entità e configura le autorizzazioni CRUD tramite una richiesta di chat:
L'esempio seguente mostra GitHub Copilot che abilita gli endpoint MCP per la configurazione del generatore di API dati:
Annotazioni
L'integrazione di GitHub Copilot richiede l'installazione e l'accesso delle estensioni GitHub Copilot Chat e GitHub Copilot. Per istruzioni sulla configurazione, vedere Configurare GitHub Copilot.
Limitazioni note
- Solo tabelle: l'interfaccia utente di configurazione supporta solo le tabelle. Le viste e le stored procedure non sono attualmente disponibili nella finestra di progettazione.
- Docker Desktop obbligatorio: la distribuzione locale richiede l'installazione e l'esecuzione di Docker Desktop.
-
Solo autenticazione SQL: i contenitori Docker locali non supportano i metodi di autenticazione di Microsoft Entra ID, ad esempio
ActiveDirectoryInteractive, perché l'ambiente contenitore non può aprire un browser per il flusso di accesso interattivo. L'estensione visualizza una notifica se la connessione corrente usa un tipo di autenticazione non supportato. - Il database SQL in Microsoft Fabric non è supportato: il database SQL in Microsoft Fabric richiede esclusivamente l'autenticazione Di Microsoft Entra e non supporta l'autenticazione SQL. Poiché la distribuzione di contenitori locali richiede l'autenticazione SQL, la distribuzione nel database SQL in Fabric non è uno scenario praticabile.
- Chiave primaria obbligatoria: ogni entità di tabella esposta tramite Generatore API dati deve avere un vincolo di chiave primaria definito a livello di database. Le tabelle senza una chiave primaria causano un errore del motore di Generatore API dati all'avvio.
- L'output generato dall'intelligenza artificiale deve essere esaminato: GitHub Copilot potrebbe produrre configurazioni non corrette o non ottimali. Esaminare sempre le configurazioni generate prima della distribuzione.
Problemi noti
-
Tipi di dati di SQL Server non supportati: Il generatore di API dati non può serializzare determinati tipi di dati di SQL Server. Le tabelle contenenti colonne con tipi non supportati possono causare un errore del motore all'avvio. I tipi non supportati includono
geography,geometry,hierarchyidrowversion, ,sql_variantexml. L'estensione contrassegna le entità interessate con un'icona di avviso e ne impedisce l'selezione per la distribuzione. Per le informazioni più recenti sul supporto dei tipi di dati, vedere Problema gitHub #3181. - Autenticazione interattiva di Microsoft Entra ID non supportata per la distribuzione di contenitori: il contenitore Generatore API dati non può eseguire l'autenticazione interattiva di Microsoft Entra. Le connessioni che usano metodi interattivi di Microsoft Entra ID vengono bloccate con una notifica. Per altre informazioni, vedere Problema di GitHub #3246.
- MCP è in anteprima: l'esperienza MCP del generatore di API dati è attualmente in anteprima. Per altre informazioni, vedere Data API Builder MCP Preview.
Feedback e supporto
Se si hanno idee, commenti e suggerimenti o si vuole interagire con la community, partecipare alla discussione all'indirizzo https://aka.ms/vscode-mssql-discussions. Per segnalare un bug, visitare https://aka.ms/vscode-mssql-bug. Per richiedere una nuova funzionalità, passare a https://aka.ms/vscode-mssql-feature-request.
Contenuti correlati
- Che cos'è Data API Builder?
- Documentazione del generatore di API dati
- Estensione Copilot di GitHub per MSSQL per Visual Studio Code
- Progettista di schemi
- Integrazione di GitHub Copilot in Schema Designer (anteprima)
- Guida introduttiva: Connettersi ed eseguire query su un database con l'estensione MSSQL per Visual Studio Code
- Contenitore di SQL Server locale
- Documentazione di Visual Studio Code
- Estensione MSSQL per il repository di Visual Studio Code in GitHub