Dela via


Data-API-byggare (förhandsversion)

MSSQL-tillägget för Visual Studio Code innehåller ett integrerat användargränssnitt för Data API Builder, så att du kan skapa REST-, GraphQL- och MCP-slutpunkter för dina SQL-databastabeller utan att skriva konfigurationsfiler eller lämna Visual Studio Code. Du kan välja vilka tabeller som ska exponeras, konfigurera CRUD-behörigheter, välja API-typer, förhandsgranska den genererade konfigurationen och distribuera en lokal serverdel som drivs av Data API Builder, allt från ett visuellt gränssnitt.

Skärmbild av användargränssnittet för data-API-byggare med entitetslista och CRUD-kryssrutor i Visual Studio Code.

Tips/Råd

Data-API-byggare är för närvarande i förhandsversion och kan ändras baserat på feedback. Gå med i communityn på GitHub Discussions för att dela idéer eller rapportera problem.

Viktigt!

Den här funktionen har kända begränsningar, inklusive stöd endast för SQL-autentisering för containerdistribution och begränsad datatypkompatibilitet. Granska Kända begränsningar och kända problem innan du distribuerar.

Egenskaper

Integreringen av Data API Builder erbjuder följande funktioner:

  • Välj databasentiteter (tabeller) som ska exponeras som API-slutpunkter, ordnade efter schema med komprimerbar gruppering.
  • Konfigurera crud-behörigheter (Create, Read, Update och Delete) oberoende av varandra för varje entitet.
  • Välj API-typer att generera: REST, GraphQL, MCP eller valfri kombination.
  • Konfigurera avancerade entitetsinställningar, inklusive anpassade REST-sökvägar, anpassade GraphQL-typnamn och auktoriseringsroller.
  • Förhandsgranska den genererade JSON-konfigurationen för data-API:et i en skrivskyddad definitionspanel.
  • Distribuera Data API Builder lokalt som en Docker-container med automatiserade kravkontroller.
  • Testa att köra API:er direkt i Visual Studio Code med hjälp av den inbyggda Simple Browser.
  • Använd GitHub Copilot-chatt för att konfigurera entiteter via frågor om naturligt språk.

Förutsättningar

Innan du använder Data API Builder kontrollerar du att följande krav uppfylls:

Öppna data-API-byggare

Du kan öppna konfigurationsvyn för Data API Builder från två startpunkter:

  • I Objektutforskaren: Högerklicka på en databasnod och välj Skapa data-API (förhandsversion)....

    Skärmbild av konfigurationsvyn för Data API Builder med entitetslista och CRUD-kryssrutor i Visual Studio Code.

  • Från schemadesignern: Välj knappen Design-API (knapp i det övre högra hörnet i verktygsfältet) eller välj serverdelsikonen på den vänstra panelen.

    Skärmbild av knappen Design-API och serverdelsikonen i verktygsfältet Schemadesigner.

Konfigurationsvyn för Data API Builder öppnas och visar dina databasentiteter, API-typalternativ och konfigurationskontroller.

Markera entiteter

Vyn för entitetsval visar en lista över alla tabeller från den anslutna databasen, grupperade efter schema.

  • Varje schemarad är komprimerad och visar ett antal-märke som anger hur många entiteter som är aktiverade (till exempel "3/5").
  • Markera en kryssruta på schemanivå för att växla alla entiteter i schemat. Kryssrutan stöder val av tre lägen: alla, inga eller blandade.
  • Varje entitetsrad visas: kryssrutan Aktivera, entitetsnamn, källtabell, CRUD-kryssrutor och en inställningsknapp.
  • Om du inaktiverar en entitet, gråläggs dess rad och CRUD-kryssrutorna samt inställningsknappen inaktiveras.

Använd filterrutan längst upp för att söka efter entiteter efter namn, schema eller källtabell. Filtret är skiftlägesokänsligt och det aktiverade antalet uppdateras baserat på filtrerade resultat.

Skärmbild av entitetsfilterrutan med en sökterm som filtrerar entitetslistan.

Konfigurera behörigheter och API-typer

CRUD-behörigheter

Kryssa i enskilda Create, Read, Update, och Delete kryssrutor för varje enhet. CRUD-kryssrutorna på huvudnivå växlar åtgärden för alla aktiverade entiteter och stöder val med tre lägen.

Val av API-typ

Längst upp i konfigurationsvyn väljer du de API-typer som ska genereras:

  • REST API: Genererar REST-slutpunkter med Swagger-användargränssnittet för testning.
  • GraphQL: Genererar GraphQL-slutpunkter med Nitro GraphQL Playground.
  • MCP (förhandsversion): Genererar slutpunkter för modellkontextprotokoll.
  • Alla: Markerar eller avmarkerar alla API-typer.

Välj minst en API-typ.

Skärmbild av kryssrutorna REST API, GraphQL, MCP och Alla överst i konfigurationsvyn för Data API Builder.

Avancerad entitetskonfiguration

Välj kugghjulsikonen på en entitetsrad för att öppna dialogrutan Avancerad entitetskonfiguration , där du kan konfigurera:

  • Entitetsnamn: Namnet som används i API-vägar och -svar (standardvärdet är tabellnamnet).
  • Auktoriseringsroll: Växla mellan Anonym (ingen autentisering krävs) och Autentiserad (kräver användarautentisering).
  • Anpassad REST-sökväg: Valfri åsidosättning för standardsökvägen api/entityName .
  • Anpassad GraphQL-typ: Valfri åsidosättning för standardnamnet för GraphQL-typen.

Välj Tillämpa ändringar för att spara konfigurationen eller Avbryt om du vill ignorera den.

Skärmbild av dialogrutan Avancerad entitetskonfiguration som visar fälten Entitetsnamn, Auktoriseringsroll, Anpassad REST-sökväg och Anpassad GraphQL-typ.

Förhandsgranskningskonfiguration

Välj knappen Visa konfiguration i verktygsfältet för att öppna panelen Definition längst ned i konfigurationsvyn. Den här panelen visar den genererade JSON-konfigurationsfilen för Data API Builder i ett skrivskyddat format.

Definitionspanelen

  • Visar aktuell entitetsval, API-typer och avancerade inställningar.
  • Förblir synkroniserad med användargränssnittet och GitHub Copilot-chatten: ändringar som görs på någon av platserna uppdaterar omedelbart förhandsversionen.
  • Innehåller endast aktiverade entiteter i konfigurationsutdata.
  • Visar REST-, GraphQL- och MCP-körningsavsnitt baserat på valda API-typer.

Välj Öppna i redigeraren för att visa konfigurationen i en hel Visual Studio Code-redigerarflik. Välj Kopiera för att kopiera konfigurationen till urklipp.

Skärmbild av panelen Definition som visar JSON-konfigurationen för den genererade data-API-versionen med knapparna Öppna i redigeraren och Kopiera.

Distribuera lokalt med Docker

Data API Builder distribueras som en lokal Docker-container. Distributionsguiden vägleder dig genom processen:

  1. Välj knappen Distribuera i verktygsfältet.

  2. Dialogrutan Distribuera DAB-container öppnas och beskriver distributionen av den lokala containern. Klicka på Nästa.

    Skärmbild av dialogrutan Distribuera DAB-container med beskrivningen av distributionen av lokala containrar.

  3. Skärmen Getting Docker Ready kör förkravskontroller sekventiellt:

    • Kontrollerar Docker-installationen: Verifierar att Docker är installerat på systemet.
    • Startar Docker Desktop: Säkerställer att Docker Desktop körs.
    • Kontrollerar Docker-motorn: Verifierar att Docker-motorn är klar.

    Skärmbild av nödvändiga Docker-kontroller som körs sekventiellt.

    Välj Nästa för att fortsätta när alla kontroller har slutförts.

    Skärmbild av nödvändiga Docker-kontroller som har slutförts.

  4. Skärmen Containerinställningar visas:

    • Containernamn: Valfritt namn för Docker-containern (en automatiskt genererad standard anges).
    • Port: Porten som API:et ska exponeras på (standard: 5000).
    • Containern återanvänder anslutningssträngen från den aktiva databasanslutningen.

    Välj Skapa container.

    Skärmbild av skärmen Containerinställningar med fälten Containernamn och Port.

  5. Distributionen utför tre steg sekventiellt: hämta avbild, starta container och kontrollera beredskap.

    Skärmbild av distributionsframsteget som visar stegen för att skapa containrar.

  6. Vid lyckad distribution visar guiden slutpunkts-URL:er för varje aktiverad API-typ:

    API-typ Slutpunkt Action
    REST http://localhost:{port}/api Visa Swagger öppnar Swagger-användargränssnittet
    GraphQL http://localhost:{port}/graphql Nitro öppnar GraphQL-lekplatsen
    MCP http://localhost:{port}/mcp Lägg till i VS Code skriver MCP-serverkonfigurationen till .vscode/mcp.json

    Välj valfri länk för att öppna testgränssnittet i den inbyggda Enkla webbläsaren i Visual Studio Code.

    Skärmbild av den fullständiga distributionsskärmen som visar att data-API Builder-containern körs med slutpunkts-URL:er.

    I följande exempel visas Swagger-användargränssnittet för testning av REST-slutpunkter direkt i Visual Studio Code:

    Skärmbild av Swagger-användargränssnittet för REST-slutpunkter i Visual Studio Code Simple Browser.

    I följande exempel visas Nitro GraphQL-lekplatsen för testning av GraphQL-frågor och mutationer:

    Skärmbild av Nitro GraphQL-lekplatsen i Visual Studio Code Simple Browser.

Testa API:et som körs

Efter distributionen kan du testa dina API:er direkt från distributionens slutförandedialogruta med hjälp av den inbyggda Enkla webbläsaren i Visual Studio Code.

REST-API

Välj Visa Swagger för att öppna Swagger-användargränssnittet, ett interaktivt visuellt gränssnitt för att utforska och testa REST-slutpunkter. Du kan bläddra bland tillgängliga entiteter, visa scheman för begäranden och svar och köra API-anrop direkt.

Data API Builder genererar följande REST-slutpunkter för varje aktiverad entitet:

Metod Slutpunkt Beskrivning
GET /api/{entity} Visa en lista över alla poster för en entitet
GET /api/{entity}/{primaryKey}/{value} Hämta en enskild post med hjälp av primärnyckel
POST /api/{entity} Skapa en ny post
PUT /api/{entity}/{primaryKey}/{value} Ersätt en befintlig datapost
PATCH /api/{entity}/{primaryKey}/{value} Uppdatera specifika fält på en post
DELETE /api/{entity}/{primaryKey}/{value} Ta bort en post

Mer information om REST-slutpunkter finns i Data API builder REST API.

GraphQL

Välj Nitro för att öppna Nitro GraphQL-lekplatsen, där du kan skriva och testa GraphQL-frågor och mutationer interaktivt.

Mer information om GraphQL-slutpunkter finns i Data API builder GraphQL-API.

MCP

Välj Lägg till i VS Code för att skriva MCP-serverkonfigurationen till .vscode/mcp.json. Den här konfigurationen gör Data API Builder-slutpunkten tillgänglig som en MCP-server i Visual Studio Code. AI-verktyg som GitHub Copilot kan sedan interagera med din databas via Data API:et.

Mer information om MCP i Visual Studio Code finns i Använda MCP-servrar i Visual Studio Code.

Terminal testning

Du kan också testa slutpunkter från terminalen:

REST API:

Hämta alla poster från en specifik entitet:

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

Skapa en ny postering (om behörigheten att skapa är aktiverad):

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

Tips/Råd

Ersätt {port} med den port som du konfigurerade under distributionen (standard: 5000).

GitHub Copilot-integrering

För utvecklare som föredrar naturligt språk är GitHub Copilot inbyggt i Data API Builder-upplevelsen. Välj knappen Chatt i verktygsfältet för att öppna en GitHub Copilot-chattsession som är begränsad till konfigurationskontexten för Data API Builder. GitHub Copilot och användargränssnittet förblir synkroniserade: ändringar som görs via chatten återspeglas omedelbart i användargränssnittet och vice versa.

Här är några exempel på frågor:

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

I följande exempel visas GitHub Copilot som aktiverar entiteter och konfigurerar CRUD-behörigheter via en chattfråga:

Skärmbild av GitHub Copilot som aktiverar entiteter och ställer in CRUD-behörigheter via en fråga om naturligt språk i chatten med Data API Builder.

I följande exempel visas GitHub Copilot som aktiverar MCP-slutpunkter för konfigurationen av Data API Builder:

Skärmbild av GitHub Copilot som aktiverar MCP-slutpunkter via en fråga med naturligt språk i data-API-builder-chatten.

Anmärkning

GitHub Copilot-integrering kräver att GitHub Copilot- och GitHub Copilot Chat-tilläggen installeras och loggas in. Installationsinstruktioner finns i Konfigurera GitHub Copilot.

Kända begränsningar

  • Endast tabeller: Konfigurationsgränssnittet stöder endast tabeller. Vyer och lagrade procedurer är inte tillgängliga i designern just nu.
  • Docker Desktop krävs: Lokal distribution kräver att Docker Desktop installeras och körs.
  • ENDAST SQL-autentisering: Lokala Docker-containrar stöder inte Microsoft Entra ID-autentiseringsmetoder, till exempel ActiveDirectoryInteractive, eftersom containermiljön inte kan öppna en webbläsare för det interaktiva inloggningsflödet. Tillägget visar ett meddelande om din aktuella anslutning använder en autentiseringstyp som inte stöds.
  • SQL-databas i Microsoft Fabric stöds inte: SQL-databasen i Microsoft Fabric kräver Endast Microsoft Entra-autentisering och stöder inte SQL-autentisering. Eftersom lokal containerdistribution kräver SQL-autentisering, är distribution mot SQL-databas i Fabric inte ett genomförbart alternativ.
  • Primärnyckel krävs: Varje tabellentitet som exponeras via Data API Builder måste ha en primärnyckelbegränsning definierad på databasnivå. Tabeller utan primärnyckel gör att data-API-buildermotorn misslyckas vid start.
  • AI-genererade utdata bör granskas: GitHub Copilot kan ge felaktiga eller suboptimala konfigurationer. Granska alltid genererade konfigurationer innan du distribuerar.

Kända problemområden

  • SQL Server-datatyper som inte stöds: Data API Builder kan inte serialisera vissa SQL Server-datatyper. Tabeller som innehåller kolumner med typer som inte stöds kan orsaka att motorn misslyckas vid start. Typer som inte stöds är geography, geometry, hierarchyid, rowversion, sql_variantoch xml. Tillägget markerar berörda entiteter med en varningsikon och förhindrar att de väljs för distribution. Den senaste informationen om stöd för datatyper finns i GitHub-problem #3181.
  • Interaktiv Microsoft Entra-ID-autentisering stöds inte för containerdistribution: Data API Builder-containern kan inte utföra interaktiv Microsoft Entra-autentisering. Anslutningar med interaktiva Microsoft Entra-ID-metoder blockeras med ett meddelande. Mer information finns i GitHub-problem #3246.
  • MCP är i förhandsversion: Data API Builder MCP-upplevelsen är för närvarande i förhandsversion. Mer information finns i MCP-förhandsversionen av Data API Builder.

Feedback och support

Om du har idéer, feedback eller vill engagera dig i communityn kan du delta i diskussionen på https://aka.ms/vscode-mssql-discussions. Om du vill rapportera en bugg går du till https://aka.ms/vscode-mssql-bug. Om du vill begära en ny funktion går du till https://aka.ms/vscode-mssql-feature-request.