Delen via


Data API Builder (preview)

De MSSQL-extensie voor Visual Studio Code bevat een geïntegreerde gebruikersinterface voor Data API Builder, zodat u REST-, GraphQL- en MCP-eindpunten voor uw SQL-databasetabellen kunt maken zonder configuratiebestanden te schrijven of Visual Studio Code te verlaten. U kunt selecteren welke tabellen beschikbaar moeten worden gemaakt, CRUD-machtigingen moeten configureren, API-typen kiezen, een voorbeeld van de gegenereerde configuratie bekijken en een lokale back-end implementeren die mogelijk wordt gemaakt door Data API Builder, allemaal vanuit een visuele interface.

Schermopname van de gebruikersinterface van Data API Builder met entiteitslijst en CRUD-selectievakjes in Visual Studio Code.

Aanbeveling

Data API Builder is momenteel in preview en kan worden gewijzigd op basis van feedback. Neem deel aan de community op GitHub-discussies om ideeën te delen of problemen te melden.

Belangrijk

Deze functie heeft bekende beperkingen, waaronder ondersteuning voor alleen SQL-verificatie voor containerimplementatie en compatibiliteit met beperkte gegevenstypen. Bekijk bekende beperkingen en bekende problemen voordat u implementeert.

Features

Integratie van Data API Builder biedt deze mogelijkheden:

  • Selecteer database-entiteiten (tabellen) om beschikbaar te maken als API-eindpunten, geordend op schema met samenvouwbare groepering.
  • Configureer cruD-machtigingen (Create, Read, Update en Delete) afzonderlijk voor elke entiteit.
  • Kies API-typen die u wilt genereren: REST, GraphQL, MCP of een willekeurige combinatie.
  • Configureer geavanceerde entiteitsinstellingen, waaronder aangepaste REST-paden, aangepaste GraphQL-typenamen en autorisatierollen.
  • Bekijk de gegenereerde JSON-configuratie van de Data API Builder in een alleen-lezen definitievenster.
  • Implementeer Data API Builder lokaal als een Docker-container met geautomatiseerde vereistencontroles.
  • Test het uitvoeren van API's rechtstreeks in Visual Studio Code met behulp van de ingebouwde Eenvoudige browser.
  • Gebruik GitHub Copilot-chat om entiteiten te configureren via prompts in natuurlijke taal.

Vereiste voorwaarden

Voordat u Data API Builder gebruikt, moet u ervoor zorgen dat aan de volgende vereisten wordt voldaan:

Open Data API-bouwer

U kunt de configuratieweergave van Data API Builder openen vanaf twee toegangspunten:

  • Klik in Objectverkenner met de rechtermuisknop op een databaseknooppunt en selecteer Build Data API (preview)....

    Schermopname van de configuratieweergave van de Data API Builder met entiteitslijst en CRUD-selectievakjes in Visual Studio Code.

  • Selecteer in schemaontwerper de knop Ontwerp-API (knop in de rechterbovenhoek van de werkbalk) of selecteer het pictogram Back-end in het linkerdeelvenster.

    Schermopname van de knop Ontwerp-API en het pictogram Back-end in de werkbalk SchemaOntwerper.

De configuratieweergave van Data API Builder wordt geopend, met uw databaseentiteiten, API-typeopties en configuratiebesturingselementen.

Entiteiten selecteren

De entiteitsselectieweergave bevat alle tabellen uit uw verbonden database, gegroepeerd op schema.

  • Elke schemarij is samenvouwbaar en toont een badge die aangeeft hoeveel entiteiten zijn ingeschakeld, bijvoorbeeld '3/5'.
  • Schakel een selectievakje op schemaniveau in om alle entiteiten in dat schema in te schakelen. Het selectievakje ondersteunt selectie in drie toestanden: alle, geen of gemengd.
  • Toont per entiteitsrij: het selectievakje voor inschakelen, entiteitsnaam, brontabel, CRUD-selectievakjes en een instellingenknop.
  • Als u een entiteit uitschakelt, wordt de rij grijs weergegeven en worden de CRUD-selectievakjes en de instellingenknop uitgeschakeld.

Gebruik het filtervak bovenaan om entiteiten te doorzoeken op naam, schema of brontabel. Het filter is niet hoofdlettergevoelig, en het ingeschakelde aantal wordt bijgewerkt op basis van de gefilterde resultaten.

Schermopname van het filtervak voor entiteiten met een zoekterm die de entiteitslijst filtert.

Machtigingen en API-typen configureren

CRUD-machtigingen

Schakel afzonderlijke selectievakjes voor maken, lezen, bijwerken en verwijderen in voor elke entiteit. Met de CRUD-selectievakjes op headerniveau schakelt u die actie in voor alle ingeschakelde entiteiten en biedt ondersteuning voor selectie van drie statussen.

Selectie van API-type

Selecteer bovenaan de configuratieweergave de API-typen die u wilt genereren:

  • REST API: genereert REST-eindpunten met de Swagger-gebruikersinterface voor testen.
  • GraphQL: Genereert GraphQL-eindpunten met Nitro GraphQL-speeltuin.
  • MCP (preview): genereert eindpunten voor modelcontextprotocollen.
  • Alles: hiermee selecteert of deselecteert u alle API-typen.

Selecteer ten minste één API-type.

Schermopname van de selectievakjes REST API, GraphQL, MCP en Alle bovenaan de configuratieweergave van de Data API Builder.

Geavanceerde entiteitsconfiguratie

Selecteer het tandwielpictogram in een entiteitsrij om het dialoogvenster Geavanceerde entiteitsconfiguratie te openen, waar u het volgende kunt configureren:

  • Entiteitsnaam: de naam die wordt gebruikt in API-routes en -antwoorden (standaard ingesteld op de tabelnaam).
  • Autorisatierol: schakelen tussen Anoniem (geen verificatie vereist) en Geverifieerd (vereist gebruikersverificatie).
  • Aangepast REST-pad: optioneel overschrijven voor het standaardpad api/entityName .
  • Aangepast GraphQL-type: Optioneel overschrijven voor de standaardnaam van het GraphQL-type.

Selecteer Wijzigingen toepassen om uw configuratie op te slaan of Annuleren om te verwijderen.

Schermopname van het dialoogvenster Geavanceerde entiteitsconfiguratie met de velden Entiteitsnaam, Autorisatierol, Aangepast REST-pad en Aangepast GraphQL-type.

Preview-configuratie

Selecteer de knop Configuratie weergeven op de werkbalk om het deelvenster Definitie onder aan de configuratieweergave te openen. In dit deelvenster ziet u het gegenereerde JSON-configuratiebestand voor Data API Builder in een indeling die alleen lezen toestaat.

Het deelvenster Definitie:

  • Geeft de huidige entiteitsselectie, API-typen en geavanceerde instellingen weer.
  • Blijft gesynchroniseerd met de gebruikersinterface en GitHub Copilot-chat: wijzigingen die op beide locaties zijn aangebracht, werken de preview onmiddellijk bij.
  • Bevat alleen ingeschakelde entiteiten in de configuratie-uitvoer.
  • Toont REST-, GraphQL- en MCP-runtimesecties op basis van geselecteerde API-typen.

Selecteer Openen in Editor om de configuratie weer te geven op een volledig tabblad van de Visual Studio Code-editor. Selecteer Kopiëren om de configuratie naar het klembord te kopiëren.

Schermopname van het deelvenster Definitie met de gegenereerde JSON-configuratie van Data API Builder met de knoppen Openen in Editor en Kopiëren.

Lokaal implementeren met Docker

Data API Builder wordt geïmplementeerd als een lokale Docker-container. De implementatiewizard begeleidt u bij het proces:

  1. Selecteer de knop Implementeren op de werkbalk.

  2. Het dialoogvenster DAB-container implementeren wordt geopend, waarin de lokale containerimplementatie wordt beschreven. Kies Volgende.

    Schermopname van het dialoogvenster DAB-container implementeren met de beschrijving van de lokale containerimplementatie.

  3. In het scherm Docker Voorbereiden worden de vereiste controles opeenvolgend uitgevoerd:

    • Docker-installatie controleren: Controleert of Docker op uw systeem is geïnstalleerd.
    • Docker Desktop starten: zorgt ervoor dat Docker Desktop wordt uitgevoerd.
    • Docker-engine controleren: controleert of de Docker-engine gereed is.

    Schermopname van de docker-vereistencontroles die opeenvolgend worden uitgevoerd.

    Selecteer Volgende om door te gaan zodra alle controles zijn voltooid.

    Schermopname van de vereistencontroles van Docker succesvol voltooid.

  4. Het scherm Containerinstellingen wordt weergegeven:

    • Containernaam: optionele naam voor de Docker-container (er wordt een automatisch gegenereerde standaardwaarde opgegeven).
    • Poort: de poort waarop de API beschikbaar moet worden gemaakt (standaard: 5000).
    • De container hergebruikt de verbindingsreeks van de actieve databaseverbinding.

    Selecteer Container maken.

    Schermopname van het scherm Containerinstellingen met de velden Containernaam en Poort.

  5. De implementatie voert drie stappen opeenvolgend uit: image ophalen, container starten en gereedheid controleren.

    Schermopname van de voortgang van de implementatie met stappen voor het maken van containers.

  6. Bij een geslaagde implementatie geeft de wizard de eindpunt-URL's weer voor elk ingeschakeld API-type:

    API-type Eindpunt Action
    REST http://localhost:{port}/api Weergave Swagger opent de Swagger-gebruikersinterface
    GraphQL http://localhost:{port}/graphql Nitro opent de GraphQL-speeltuin
    MCP http://localhost:{port}/mcp Toevoegen aan VS Code schrijft de MCP-serverconfiguratie naar .vscode/mcp.json

    Selecteer een koppeling om de testinterface te openen in de ingebouwde Simple Browser van Visual Studio Code.

    Schermopname van het volledige scherm voor de implementatie waarin de Data API Builder-container wordt uitgevoerd met eindpunt-URL's.

    In het volgende voorbeeld ziet u de Swagger-gebruikersinterface voor het rechtstreeks testen van REST-eindpunten in Visual Studio Code:

    Schermopname van de Swagger UI voor REST-eindpunten in visual Studio Code Simple Browser.

    In het volgende voorbeeld ziet u de Nitro GraphQL-speeltuin voor het testen van GraphQL-query's en -mutaties:

    Schermopname van de Nitro GraphQL-speeltuin in visual Studio Code Simple Browser.

De actieve API testen

Na de implementatie kunt u uw API's rechtstreeks vanuit het dialoogvenster voor voltooiing van de implementatie testen met behulp van de ingebouwde Simple Browser van Visual Studio Code.

REST API

Selecteer Swagger weergeven om de Swagger-gebruikersinterface te openen, een interactieve visuele interface voor het verkennen en testen van REST-eindpunten. U kunt door beschikbare entiteiten bladeren, aanvraag- en antwoordschema's bekijken en API-aanroepen rechtstreeks uitvoeren.

Data API Builder genereert de volgende REST-eindpunten voor elke ingeschakelde entiteit:

Methode Eindpunt Beschrijving
GET /api/{entity} Alle records voor een entiteit weergeven
GET /api/{entity}/{primaryKey}/{value} Eén record ophalen op basis van primaire sleutel
POST /api/{entity} Een nieuwe record maken
PUT /api/{entity}/{primaryKey}/{value} Een bestaande record vervangen
PATCH /api/{entity}/{primaryKey}/{value} Specifieke velden voor een record bijwerken
DELETE /api/{entity}/{primaryKey}/{value} Een record verwijderen

Zie REST API Builder REST API voor meer informatie over REST-eindpunten.

GraphQL

Selecteer Nitro om de Nitro GraphQL-speeltuin te openen, waar u interactief GraphQL-query's en mutaties kunt schrijven en testen.

Zie GraphQL API Builder GraphQL API voor meer informatie over GraphQL-eindpunten.

MCP

Selecteer Toevoegen aan VS Code om de MCP-serverconfiguratie te schrijven naar .vscode/mcp.json. Met deze configuratie is het eindpunt van de Data API Builder beschikbaar als een MCP-server in Visual Studio Code. AI-hulpprogramma's zoals GitHub Copilot kunnen vervolgens communiceren met uw database via de Data API Builder API.

Zie MCP-servers gebruiken in Visual Studio Code voor meer informatie over MCP in Visual Studio Code.

Terminal testen

U kunt ook eindpunten testen vanuit de terminal:

REST API:

Alle records ophalen van een specifieke entiteit:

curl http://localhost:{port}/api/{entityName}

Een nieuw record maken (als de toestemming maken is ingeschakeld):

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 } } }"}'

Aanbeveling

Vervang {port} door de poort die u tijdens de implementatie hebt geconfigureerd (standaard: 5000).

GitHub Copilot-integratie

Voor ontwikkelaars die de voorkeur geven aan natuurlijke taal, is GitHub Copilot ingebouwd in de ervaring voor data-API-opbouwfunctie. Selecteer de knop Chat op de werkbalk om een GitHub Copilot-chatsessie te openen die is gericht op de configuratiecontext van de Data API Builder. GitHub Copilot en de gebruikersinterface blijven gesynchroniseerd: wijzigingen die via chat worden aangebracht, worden onmiddellijk doorgevoerd in de gebruikersinterface en omgekeerd.

Hier volgen enkele voorbeeldprompts:

  • "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?"

In het volgende voorbeeld ziet u GitHub Copilot voor het inschakelen van entiteiten en het configureren van CRUD-machtigingen via een chatprompt:

Schermopname van GitHub Copilot voor het inschakelen van entiteiten en het instellen van CRUD-machtigingen via een prompt in natuurlijke taal in de Data API Builder-chat.

In het volgende voorbeeld ziet u dat GitHub Copilot de MCP-eindpunten inschakelt voor de configuratie van de Data-API-bouwer.

Schermopname van GitHub Copilot voor het inschakelen van MCP-eindpunten via een prompt in natuurlijke taal in de Data API Builder-chat.

Opmerking

GitHub Copilot-integratie vereist dat de GitHub Copilot- en GitHub Copilot Chat-extensies zijn geïnstalleerd en aangemeld. Zie GitHub Copilot instellen voor installatie-instructies.

Bekende beperkingen

  • Alleen tabellen: de gebruikersinterface van de configuratie ondersteunt alleen tabellen. Weergaven en opgeslagen procedures zijn momenteel niet beschikbaar in de ontwerpfunctie.
  • Docker Desktop vereist: voor lokale implementatie moet Docker Desktop worden geïnstalleerd en uitgevoerd.
  • Alleen SQL-verificatie: lokale Docker-containers bieden geen ondersteuning voor verificatiemethoden voor Microsoft Entra-id's, zoals ActiveDirectoryInteractive, omdat de containeromgeving geen browser kan openen voor de interactieve aanmeldingsstroom. De extensie geeft een melding weer als uw huidige verbinding gebruikmaakt van een niet-ondersteund verificatietype.
  • SQL-database in Microsoft Fabric wordt niet ondersteund: SQL-database in Microsoft Fabric vereist uitsluitend Microsoft Entra-verificatie en biedt geen ondersteuning voor SQL-verificatie. Omdat voor lokale containerimplementatie SQL-verificatie is vereist, is het implementeren op basis van SQL Database in Fabric geen geschikt scenario.
  • Primaire sleutel vereist: elke tabelentiteit die beschikbaar is via Data API Builder, moet een primaire-sleutelbeperking hebben die is gedefinieerd op databaseniveau. Tabellen zonder primaire sleutel zorgen ervoor dat de engine van de Data API Builder mislukt bij het opstarten.
  • Door AI gegenereerde uitvoer moet worden gecontroleerd: GitHub Copilot kan onjuiste of suboptimale configuraties produceren. Controleer altijd gegenereerde configuraties voordat u implementeert.

Bekende problemen

  • Niet-ondersteunde SQL Server-gegevenstypen: Data API Builder kan bepaalde SQL Server-gegevenstypen niet serialiseren. Tabellen met kolommen met niet-ondersteunde typen kunnen ertoe leiden dat de engine mislukt bij het opstarten. Niet-ondersteunde typen zijn onder andere geography, geometry, hierarchyid, rowversionen sql_variantxml. De extensie markeert de betrokken entiteiten met een waarschuwingspictogram en voorkomt dat ze worden geselecteerd voor implementatie. Zie GitHub-probleem #3181 voor de meest recente informatie over ondersteuning voor gegevenstypen.
  • Interactieve Microsoft Entra ID-verificatie wordt niet ondersteund voor containerimplementatie: de Data API Builder-container kan geen interactieve Microsoft Entra-verificatie uitvoeren. Verbindingen met behulp van interactieve Microsoft Entra ID-methoden worden geblokkeerd met een melding. Zie GitHub-probleem 3246 voor meer informatie.
  • MCP is in preview: De Data API Builder MCP-ervaring is momenteel in preview. Zie Data API Builder MCP Preview voor meer informatie.

Feedback en ondersteuning

Als u ideeën, feedback of contact wilt opnemen met de community, kunt u deelnemen aan de discussie op https://aka.ms/vscode-mssql-discussions. Als u een fout wilt melden, gaat u naar https://aka.ms/vscode-mssql-bug. Als u een nieuwe functie wilt aanvragen, gaat u naar https://aka.ms/vscode-mssql-feature-request.