Megosztás a következőn keresztül:


A 0.11-es és korábbi verzió újdonságai

Kibocsátási megjegyzések és információk a Data API Builder 0.11-es és korábbi verziójának összes frissítéséről és továbbfejlesztéséről.

A 0.11-es verzió újdonságai

Kibocsátási megjegyzések és információk a Data API Builder 0.10-es verziójának frissítéseivel és fejlesztéseivel kapcsolatban.

GraphQL-támogatás az SQL Data Warehouse-hoz

Az SQL Data Warehouse mostantól támogatja a GraphQL-végpontokat.

Továbbfejlesztett Azure Cosmos DB for NoSQL-szűrés

Az Azure Cosmos DB for NoSQL mostantól támogatja a beágyazott szűrőket, azonosítóváltozókat és sztringtömb-kereséseket az contains operátorral.

Alkalmazásadatok gyűjtésének engedélyezése parancssori felülettel

Mostantól a DAB parancssori felületével (CLI) engedélyezheti az adatgyűjtést az Application Insights használatával.

A 0.10-es verzió újdonságai

Kibocsátási megjegyzések és információk a Data API Builder 0.10-es verziójának frissítéseivel és fejlesztéseivel kapcsolatban.

A fókusz a stabilitásra kerül az általános rendelkezésre állás megközelítésekor. Bár a kódminőség és a motorstabilitás terén nem minden erőfeszítést részletezünk ebben a cikkben, ez a lista a jelentős frissítéseket emeli ki.

A GitHub kibocsátási megjegyzései

Tekintse át ezeket a kiadási lapokat az összes módosítás és fejlesztés átfogó listájáért:

Memóriában való gyorsítótárazás

A 0.10-es verzió bevezeti a memóriabeli gyorsítótárazást a REST- és GraphQL-végpontokhoz. Ez a belső gyorsítótárazáshoz tervezett funkció lefekteti a jövőbeli elosztott gyorsítótárazás alapjait. A memóriabeli gyorsítótárazás csökkenti az ismétlődő lekérdezések adatbázis-terhelését.

Gyorsítótárazási forgatókönyvek

  • Az adatbázis terhelésének csökkentése: A gyorsítótár tárolja a költséges lekérdezések eredményeit, így nincs szükség ismétlődő adatbázis-hívásokra.
  • Az API skálázhatóságának javítása: A gyorsítótárazás az adatbázis-kérelmek növelése nélkül támogatja a gyakoribb API-hívásokat, jelentősen skálázva az API képességeit.

Konfigurációs változások

A gyorsítótárazási beállítások a szakaszban és az runtime egyes entitások esetében érhetők el, részletes vezérlést biztosítva.

Futtatókörnyezet beállításai:

{
  "runtime": {
    "cache": {
      "enabled": true,
      "ttl-seconds": 6
    }
  }
}
  • A gyorsítótárazás alapértelmezés szerint le van tiltva.
  • Az alapértelmezett élettartam (TTL) 5 másodperc.

Entitásbeállítások:

{
  "Book": {
    "source": {
      "object": "books",
      "type": "table"
    },
    "graphql": {
      "enabled": true,
      "type": {
        "singular": "book",
        "plural": "books"
      }
    },
    "rest": {
      "enabled": true
    },
    "permissions": [
      {
        "role": "anonymous",
        "actions": [
          {
            "action": "*"
          }
        ]
      }
    ],
    "cache": {
      "enabled": true,
      "ttl-seconds": 6
    }
  }
}

Konfiguráció érvényesítése a parancssori felületen

A parancssori felület mostantól támogatja dab validate a konfigurációs fájlok hibák vagy inkonzisztenciák ellenőrzését a fejlesztési munkafolyamat továbbfejlesztése érdekében.

Érvényesítési lépések

  1. Sémaellenőrzés
  2. Konfiguráció tulajdonságainak érvényesítése
  3. Konfigurációs engedély érvényesítése
  4. Adatbázis-kapcsolat ellenőrzése
  5. Entitások metaadatainak ellenőrzése

Előzetes verziójú funkciók

  • Kezdeti DWSQL-támogatás. #1864
  • Több adatforrás támogatása. #1709

A 0.9-es verzió újdonságai

Íme a Data API Builder 0.9 legfontosabb változásainak és fejlesztésének részletei.

A GitHub kibocsátási megjegyzései

Tekintse át ezeket a kiadási lapokat az összes módosítás és fejlesztés átfogó listájáért:

Az Application Insights engedélyezése a DAB önkiszolgáló üzemeltetése esetén

A naplók mostantól streamelhetők az Application Insightsba a jobb monitorozás és hibakeresés érdekében, különösen akkor, ha a Data API Builder üzembe van helyezve az Azure-ban. telemetry Új szakasz adható hozzá a konfigurációs fájlhoz az Application Insights integrációjának engedélyezéséhez és konfigurálásához:

"telemetry": {
    "application-insights": {
    "enabled": true,    // To enable/disable application insights telemetry
    "connection-string": "{APP_INSIGHTS_CONNECTION_STRING}" // Application Insights connection string to send telemetry
    }
}

Olvassa el az Application Insights dokumentációjának használata oldalon található összes részletet.

A REST-kérelem törzsében lévő felesleges mezők figyelmen kívül hagyásának támogatása

Az új request-body-strict beállítással eldöntheti, hogy a REST hasznos adatban lévő további mezők hibát okoznak-e (alapértelmezett viselkedés, visszamenőlegesen kompatibilis), vagy a további mezőket a rendszer csendesen figyelmen kívül hagyja.

"runtime": {
    "rest": {
      "enabled": true,
      "path": "/api",
      "request-body-strict": true
    },
    ...
}

A beállítás beállításával falsea rendszer figyelmen kívül hagyja azokat a request-body-strict mezőket, amelyek nem rendelkeznek a kapcsolódó adatbázis-objektumhoz való leképezéssel anélkül, hogy hiba keletkezik.

Alkalmazásnév hozzáadása kapcsolatokhoz mssql

A Data API Builder mostantól beszúrja a kapcsolati sztringet, csak az adatbázistípusok esetében mssql a tulajdonságként Application Name megadott értéketdab-<version>, így könnyebben azonosíthatók a kapcsolatok az adatbázis-kiszolgálón. Ha Application Name már szerepel a kapcsolati sztringben, a Data API Builder verziója hozzá lesz fűzve.

Támogatási time adattípus a következőben: mssql

time az adattípus mostantól támogatott az adatbázisokban mssql .

Mutációk a táblában a következő eseményindítókkal: mssql

A mutációk mostantól teljes mértékben támogatottak az adatbázisok eseményindítóival rendelkező táblákban mssql .

Csak olvasható mezők felhasználónkénti frissítésének/beszúrásának megakadályozása egy táblában

Automatikusan észleli az adatbázis írásvédett mezőit, és megakadályozza a mezők felhasználónkénti frissítését/beszúrását.

A 0.8-es verzió újdonságai

Íme a Data API Builder 0.8 legfontosabb változásainak és fejlesztésének részletei.

A GitHub kibocsátási megjegyzései

Tekintse át ezeket a kiadási lapokat az összes módosítás és fejlesztés átfogó listájáért:

Támogatás hozzáadva az .env fájlhoz

A környezeti változók megvédik a titkos kódokat az egyszerű szöveges expozíciótól, és lehetővé teszik az értékcserét különböző beállításokban. Ezeket a változókat azonban be kell állítani a felhasználó vagy a számítógép hatókörében, ami projektközi változó "vérzéséhez" vezethet, ha a változók neve duplikálva van. A jobb alternatíva a környezeti fájlok. További információ: Környezeti fájlok a Data API Builderben – blog.

A 0.7.6-os verzió újdonságai

Ez a cikk a 0.7.6-os kiadás kibocsátási megjegyzéseit ismerteti.

GitHub-lekéréses kérelmek

Kezdeti támogatás az OpenAPI v3-0-1 leírásdokumentum létrehozásához

A Data API Builder támogatja az OpenAPI szabványt a szolgáltatással kapcsolatos hasznos információkat tartalmazó leírási dokumentumok létrehozására és közlésére. Ezek a dokumentumok a futtatókörnyezet konfigurációs fájljából és az egyes adatbázis-objektumok metaadataiból jönnek létre. Ezek az objektumok ugyanabban a konfigurációs fájlban definiált REST-kompatibilis entitáshoz vannak társítva. Ezután egy felhasználói felületen keresztül lesznek közzétéve, és szerializált fájlként lesznek elérhetővé téve.

Az OpenAPI és a Data API Builder jellemzőiről az OpenAPI című témakörben olvashat bővebben.

Konfigurációs fájlok egyesítésének engedélyezése

Lehetővé teszi két konfigurációs fájl automatikus egyesítését.

A környezetspecifikus beállítások kezelésének egyszerűsítése érdekében több alapkonfigurációs és környezetspecifikus konfigurációs fájlt is fenntarthat. Például külön konfigurációk is fenntarthatóak a fejlesztéshez és az éles környezethez. Ez a lépés magában foglalja egy alapkonfigurációs fájl használatát, amely a különböző környezetek közötti összes általános beállítással rendelkezik. Ezután a DAB_ENVIRONMENT változó beállításával szabályozható, hogy mely konfigurációs fájlok egyesíthetők a Data API Builder általi felhasználás céljából.

További információ: CLI-referencia.

GraphQL- és REST-mutációk végrehajtása egy tranzakcióban

A Data API Builder adatbázis-tranzakciókat hoz létre bizonyos típusú GraphQL- és REST-kérések végrehajtásához.

Számos kérés létezik, amelyekhez több adatbázis-lekérdezést kell végrehajtani. Ha például egy frissítés eredményeit szeretné visszaadni, először le kell kérdezni a frissítést, majd az új értékeket be kell olvasni a visszaadás előtt. Ha egy kérelem végrehajtásához több adatbázis-lekérdezésre van szükség, a Data API Builder mostantól egyetlen tranzakción belül hajtja végre ezeket az adatbázis-lekérdezéseket.

Erről a képességről bővebben a REST dokumentáció rest-dokumentációjában, aGraphQL dokumentációjában pedig a GraphQL-ben olvashat.

A 0.6.14-es verzió újdonságai

Ez a cikk az Azure Database-hez készült Data API Builder 2023. márciusi kiadásának javítását ismerteti.

Hibajavítások

  • A Cosmos lekérdezésszűrőhöz való hozzáférésének megtagadott problémáinak elhárítása.
  • A Cosmos DB jelenleg nem támogatja a mezőszintű engedélyezést. Annak elkerülése érdekében, hogy a felhasználók véletlenül adják át az field engedélyeket a futtatókörnyezet konfigurációjában, érvényesítési ellenőrzést adtunk hozzá.

A 0.6.13-es verzió újdonságai

Az ehhez a verzióhoz tartozó kibocsátási megjegyzések teljes listája elérhető a GitHubon: https://github.com/Azure/data-api-builder/releases/tag/v0.6.13.

Új CLI-parancs a GraphQL-séma exportálásához

A GraphQL-séma exportálásához új lehetőség van hozzáadva. Ez elindítja a DAB-kiszolgálót, majd lekérdezi, hogy lekérje a sémát, mielőtt a megadott helyre íratja.

dab export --graphql -c dab-config.development.json -o ./schemas

Ez a parancs létrehozza a GraphQL-sémafájlt a ./schemas könyvtárban. A konfigurációs fájl elérési útja nem kötelező paraméter, amely alapértelmezés szerint "dab-config.json" értékre van állítva, kivéve, ha "dab-config".<>DAB_ENVIRONMENT.json' létezik, ahol DAB_ENVIRONMENT környezeti változó.

Adatbázisházirend-támogatás az MsSql-hez készült létrehozási művelethez

Az adatbázis-szabályzatok mostantól támogatottak az MsSql-hez készült CRUD-műveletek (létrehozás, olvasás, frissítés, törlés) esetében. Például:

"entities":{
  "Revenue":{
    "source": "revenues",
    "permissions":[
      "role": "authenticated",
          "actions": [
            {
              "action": "Create",
              "policy": {
                "database": "@item.revenue gt 0"
              }
            },
            "read",
            "update",
            "delete"
          ]
    ]
  }
}

Az entitás előző konfigurációja Revenue azt jelzi, hogy a szerepkörrel Authenticated rendelkező beszúrási műveletet végrehajtó felhasználó nem hozhat létre nullánál kisebb vagy egyenlő bevételű rekordot.

A GraphQL-elérési út konfigurálásának és a REST- és GraphQL-végpontok globális letiltásának lehetősége a parancssori felületen keresztül

Mostantól három további lehetőséget támogatunk a init parancshoz:

  • graphql.path : Egyéni GraphQL-elérési út megadása
  • rest.disabled: A REST-végpontok globális letiltása
  • graphql.disabled: A GraphQL-végpontok globális letiltása

Egy parancs például init létrehoz egy futtatókörnyezeti szakaszt tartalmazó konfigurációs fájlt:

dab init --database-type mssql --rest.disabled --graphql.disabled --graphql.path /gql
"runtime": {
    "rest": {
      "enabled": false,
      "path": "/api"
    },
    "graphql": {
      "allow-introspection": true,
      "enabled": false,
      "path": "/gql"
    },
}

A parancssori felület nézeteinek hozzáadásához és frissítéséhez kötelező kulcsmezők

A felhasználónak mostantól kötelező megadnia a kulcsmezőket (elsődleges kulcsként használandó) a közzétett beállításon source.key-fields keresztül, amikor új adatbázisnézetet (via dab add) ad hozzá a konfigurációhoz a parancssori felületen keresztül. Továbbá, ha a parancssori felületen keresztül frissíti a nézet konfigurációjában lévő elemeket (via dab update) a konfigurációs fájlban, ha a frissítés módosít valamit, ami a mögöttes adatbázisban lévő nézet definíciójával kapcsolatos (például forrástípus, kulcsmezők), kötelező megadni a kulcsmezőket is a frissítési parancsban.

Továbbra is támogatjuk azonban a nézeteket anélkül, hogy explicit elsődleges kulcsokat adnánk meg a konfigurációban, de az ilyen nézetek konfigurációját közvetlenül a konfigurációs fájlba kell írni.

Például egy dab add parancs használatával adhat hozzá egy nézetet:

dab add books_view --source books_view --source.type "view" --source.key-fields "id" --permissions "anonymous:*" --rest true --graphql true

Ez a parancs a következő példához books_view hasonló entitás konfigurációját hozza létre:

"books_view": {
      "source": {
        "type": "view",
        "object": "books_view",
        "key-fields":[
          "id"
        ]
      },
      "permissions": [
        {
          "role": "anonymous",
          "actions": [
            "*"
          ]
        }
      ],
      "rest": true,
      "graphql": true
    }

Mivel a DAB már nyílt forráskódú, nem kell letöltenünk az összetevőket a tárfiókból. Ehelyett közvetlenül letöltheti őket a GitHubról. Ezért a hivatkozások ennek megfelelően frissülnek.

A 0.5.34-es verzió újdonságai

Az ehhez a verzióhoz tartozó kibocsátási megjegyzések teljes listája elérhető a GitHubon: https://github.com/Azure/data-api-builder/releases/tag/v0.5.34.

A REST és a GraphQL-kompatibilis jelző tisztelete futtatókörnyezeti szinten

A rendszer új beállítással engedélyezi vagy letiltja a REST/GraphQL-kérelmeket az összes entitás esetében a futtatókörnyezet szintjén. Ha globálisan le van tiltva, egyetlen entitás sem lesz elérhető REST- vagy GraphQL-kérésekkel az egyes entitásbeállításoktól függetlenül. Ha globálisan engedélyezve van, az egyes entitások alapértelmezés szerint elérhetők, kivéve, ha az entitásszintű beállítások kifejezetten le vannak tiltva.

"runtime": {
    "rest": {
      "enabled": false,
      "path": "/api"
    },
    "graphql": {
      "allow-introspection": true,
      "enabled": false,
      "path": "/graphql"
    }
  }

Korrelációs azonosító a kérelemnaplókban

A hibakereséshez csatolunk egy korrelációs azonosítót a kérés során létrehozott naplókhoz. Mivel számos kérést lehet intézni, a hibakeresési folyamat elősegítése érdekében fontos, hogy egy adott kérés naplóit azonosítani lehessen.

Helyettesítő karakteres műveletek támogatása tárolt eljárásokhoz a motorban és a parancssori felületen

A tárolt eljárások esetében a szerepkörök mostantól konfigurálhatók helyettesítő karakterekkel * , de csak a execute műveletre terjed ki.

A 0.5.32-es verzió újdonságai

Az ehhez a verzióhoz tartozó kibocsátási megjegyzések teljes listája elérhető a GitHubon: https://github.com/Azure/data-api-builder/releases/tag/v0.5.32-beta.

A pihenőút testreszabásának képessége a parancssori felülettel

A parancs egy új lehetőséget --rest.path vezet be a init REST API-k elérési útvonalának testreszabásához.

dab init --database-type mssql --connection-string "Connection-String" --rest.path "rest-api" 

Ez a parancs konfigurálja a REST-végpontokat a következő előtaggal rest-api: . A REST-végpontok teljes elérési útja a következő: https://<dab-server>/rest-api/<entity-name>

Ha --rest.path a beállítás nincs használatban, a REST-végpontok az alapértelmezett előtaggal apivannak konfigurálva. Ebben az esetben a teljes elérési út a következő: https://<dab-server>/api/<entity-name>

Data API Builder-tárolórendszerkép a MAR-ban

Az Azure Database-hez készült Data API Builder hivatalos Docker-rendszerképei mostantól elérhetők a Microsoft Artifact Registryben.

A közzétett rendszerképek használatára vonatkozó utasításokért lásd: Microsoft container registry – Data API builder.

GraphQL-töredékek támogatása

A töredékek a graphQL-lekérdezések újrafelhasználható részei. Olyan esetekben, amikor ugyanazokat a mezőket különböző lekérdezésekben kell lekérdezni, az ismétlődő mezők egyetlen újrafelhasználható összetevőbe, a töredékbe egyesíthetők.

További információ a töredékekről: GraphQL-lekérdezések.

A következő lépésben Character egy típusra hívott description töredék lesz definiálva:

fragment description on Character {
  name
  homePlanet
  primaryFunction
}

A definiált töredéket használó GraphQL-lekérdezések az alábbi módon hozhatók létre:

{
  Player1: Player{
    id
    playerDescription{
        ...description
    }
  }
}

Az előző lekérdezés eredménye a következő mezőket tartalmazza:

{
 Player1: Player{
    id
    playerDescription{
        name
        homePlanet
        primaryFunction
    }
  }   
}

A BinSkim bekapcsolása és a Policheck-riasztások javítása

A BinSkim egy hordozható végrehajtható (PE) könnyű szkenner, amely ellenőrzi a fordító/linker beállításait és más, a biztonság szempontjából releváns bináris jellemzőket. A rendszer hozzáad egy folyamatfeladatot a folyamathoz static-tools a BinSkim-vizsgálatok végrehajtásához minden folyamatfuttatásnál. A PoliCheck rendszer olyan eszközök és adatok készlete, amelyek segítenek megfelelni a szöveg- és kódellenőrzési követelményeknek, a globális készültségi szabályzat részeként. A Policheck-vizsgálatok által létrehozott riasztások rögzítettek, hogy megfeleljenek a bizalmas feltételeknek.

A 0.5.0-s verzió újdonságai

Az ehhez a verzióhoz tartozó kibocsátási megjegyzések teljes listája elérhető a GitHubon: https://github.com/Azure/data-api-builder/releases/tag/v0.5.0-beta.

Nyilvános JSON-séma

A nyilvános JSON-séma támogatja az "intellisense" használatát, ha olyan IDE-t használ, mint a Visual Studio Code, amely támogatja a JSON-sémákat. A basic-empty-dab-config.json fájl manuális létrehozásakor a samples mappában található fájl egy példa kiindulási ponttal rendelkezik dab-config.json .

Nyilvános Microsoft.DataApiBuilder NuGet

Microsoft.DataApiBuilder mostantól nyilvános NuGet-csomagként érhető el itt a dotnet eszköz egyszerű telepítésének megkönnyítése érdekében az alábbiak szerint:

dotnet tool install --global Microsoft.DataApiBuilder

Új execute művelet tárolt eljárásokhoz az Azure SQL-ben

A konfigurációs fájl szakaszában csak akkor vezet be új execute műveletet, permissions ha egy forrástípus a következő entitást stored-procedureadja vissza: . Alapértelmezés szerint csak POST metódus engedélyezett az ilyen entitásokhoz, és csak a GraphQL-művelet mutation van konfigurálva a nevükhöz hozzáadott előtaggal execute . Ha a konfigurációs fájl szakaszában explicit módon adja meg az rest engedélyezett methods értéket, az felülírja ezt a viselkedést. Hasonlóképpen, a GraphQL esetében a operationgraphql szakaszban szereplő értéket felül lehet bírálni, hogy az legyen query . További információ: nézetek és tárolt eljárások.

Új mappings szakasz

mappings Az egyes entityszakaszokban az adatbázis-objektum mezőnevei és a hozzájuk tartozó közzétett mezőnevek közötti leképezések a GraphQL- és REST-végpontokhoz is definiálva vannak.

A formátum a következő:

<database_field>: <entity_field>

Például:

  "mappings":{
    "title": "descriptions",
    "completed": "done"
  }

A title kapcsolódó adatbázis-objektum mezője a GraphQL-típus vagy a REST-kérés és válasz hasznos adattípus mezőjére van leképezve description .

Munkamenet-környezet támogatása az Azure SQL-ben

Egy további biztonsági réteg (például sorszintű biztonság (RLS) engedélyezéséhez a DAB mostantól támogatja az adatok SESSION_CONTEXT keresztüli küldését a mögöttes Sql Server-adatbázisba. További részletekért tekintse meg ezt a részletes dokumentumot a következő SESSION_CONTEXT: Futtatókörnyezet az adatbázis-engedélyezéshez.

Beágyazott objektumok szűrésének támogatása egy dokumentumon belül a PostgreSQL-ben

A PostgreSQL-ben most már használhatja a sémában definiált objektum- vagy tömbkapcsolatot, amely lehetővé teszi a beágyazott objektumok szűrését, akárcsak az Azure SQL-t.

query {
  books(filter: { series: { name: { eq: "Foundation" } } }) {
    items {
      title
      year
      pages
    }
  }
}

Skaláris lista támogatása a Cosmos DB NoSQL-ben

A skalárisok lekérdezésének List képessége mostantól hozzáadódik a Cosmos DB-hez.

Fontolja meg ezt a típusdefiníciót.

type Planet @model(name:"Planet") {
    id : ID,
    name : String,
    dimension : String,
    stars: [Star]
    tags: [String!]
}

Most már futtathat olyan lekérdezést, amely lekéri a listát, például:

query ($id: ID, $partitionKeyValue: String) {
    planet_by_pk (id: $id, _partitionKeyValue: $partitionKeyValue) {
        tags
    }
}

Továbbfejlesztett naplózási támogatás naplószinttel

  • A motor alapértelmezett naplószintjei, amikor host.mode a Production és Development a értékre frissülnek ErrorDebug .
  • A motor indításakor a rendszer az entitások minden oszlopához naplózza az olyan információkat, mint a közzétett mezőnevek és az elsődleges kulcs. Ez a viselkedés akkor is előfordul, ha a mezőleképezés automatikusan létre van hozva.
  • A helyi végrehajtási forgatókönyvben a rendszer a motor indításakor generált és végrehajtott összes lekérdezést naplózza a Debug szinten.
  • A rendszer minden entitás esetében naplózza az olyan kapcsolatmezőket, mint a source.fields, target.fieldsa és cardinality a. Ha több-a-több kapcsolat van, linking.objecta , linking.source.fieldsés linking.target.fields az adatbázisból (vagy a konfigurációs fájlból) kikövetkeztetettek naplózva lesznek.
  • Minden bejövő kérés esetében a rendszer naplózza a kérés szerepkörét és hitelesítési állapotát.
  • A parancssori felületen a rendszer naplózza a Microsoft.DataAPIBuilder verziót a megfelelő parancs végrehajtásához társított naplókkal együtt.

Frissített parancssori felület

  • --no-https-redirect lehetőséget a rendszer hozzáadja a parancshoz start . Ezzel a beállítással megelőzhető a kérések automatikus átirányítása a cél felé httphttps .

  • Az MsSql-ben a munkamenet-környezet engedélyezhető --set-session-context true a init paranccsal. Ebben a példában egy mintaparancs látható:

    dab init --database-type mssql --connection-string "Connection String" --set-session-context true
    
  • A hitelesítési adatok, például a szolgáltató, a célközönség és a kiállító a parancsban található beállításokkal --auth.provider--auth.audience--auth.issuer.init konfigurálhatók. Ebben a példában egy mintaparancs látható:

    dab init --database-type mssql --auth.provider AzureAD --auth.audience "audience" --auth.issuer "issuer"
    
  • Felhasználóbarát hibaüzenetek küldése, ha nincs megadva az entitás neve.

A 0.4.11-es verzió újdonságai

Az ehhez a verzióhoz tartozó kibocsátási megjegyzések teljes listája a GitHubon érhető el: https://github.com/Azure/data-api-builder/releases/tag/v0.4.11-alpha.

A szakasz JSON-sémája data-source frissítve

A data-source konfigurációs fájl szakasza úgy frissül, hogy konzisztens legyen az összes támogatott adatbázisra vonatkozóan, de továbbra is lehetővé teszi, hogy az egyes adatbázisok egyéni konfigurációkkal rendelkezzenek. Egy új szakasz options jelenik meg az adatbázisra jellemző összes tulajdonság csoportosításához. Például:

{
  "$schema": "https://dataapibuilder.azureedge.net/schemas/v0.4.11-alpha/dab.draft.schema.json",
  "data-source": {
    "database-type": "cosmosdb_nosql",
    "options": {
      "database": "PlaygroundDB",
      "graphql-schema": "schema.gql"
    },
    "connection-string": "AccountEndpoint=https://localhost:8081/;AccountKey=REPLACEME;"
  }
}

A szakaszban elérhető options elemek a választott database-typeelemtől függenek.

Beágyazott objektumok szűrésének támogatása egy dokumentumon belül az Azure SQL-ben és az SQL Serveren

Az Azure SQL és az SQL Server használatával használhatja a sémában definiált objektum- vagy tömbkapcsolatot, amely lehetővé teszi a beágyazott objektumok szűrési műveleteit.

query {
  books(filter: { series: { name: { eq: "Foundation" } } }) {
    items {
      title
      year
      pages
    }
  }
}

Továbbfejlesztett tárolt eljárástámogatás

A REST-ben és a GraphQL-ben tárolt eljárások teljes körű támogatása. A tárolt eljárás a paraméterekkel mostantól 100%-ban támogatott. Tekintse meg a Tárolt eljárások dokumentációját, amelyből megtudhatja, hogyan használhatja a Data API Buildert tárolt eljárásokkal.

Új database-type érték átnevezve a Cosmos DB-hez

Hozzáadtuk a PostgreSQL API támogatását a Cosmos DB-vel. data-source Összevont szakasz esetén az attribútum database-type az adatbázis típusát jelöli. Mivel a Cosmos DB több API-t is támogat, a jelenleg támogatott adatbázistípusok a következők: cosmosdb_nosql és cosmosdb_postgresql.

  "data-source": {
    "database-type": "cosmosdb_nosql",
    "options": {
      "database": "PlaygroundDB",
      "graphql-schema": "schema.gql"
    }
  }

PARANCSSORI-tulajdonságok átnevezése a következőhöz: cosmosdb_nosql

Az előző szakaszokban ismertetett konfigurációs módosításokat követve a parancssori felület tulajdonságai mostantól és cosmosdb_nosql-container névvel lesznek átnevezve cosmosdb_nosql-database a Cosmos DB NoSQL API-hoz.

dab init --database-type "cosmosdb_nosql" --graphql-schema schema.gql --cosmosdb_nosql-database PlaygroundDB  --cosmosdb_nosql-container "books" --connection-string "AccountEndpoint=https://localhost:8081/;AccountKey=REPLACEME;" --host-mode "Development"

A Felügyelt identitás mostantól támogatott a Postgresben

Most a felhasználó alternatívaként megadhatja a hozzáférési jogkivonatot a konfigurációban a felügyelt identitással való hitelesítéshez. Másik lehetőségként a felhasználó most már nem tudja megadni a jelszót a kapcsolati sztringben, és a futtatókörnyezet megpróbálja lekérni az alapértelmezett felügyelt identitás jogkivonatát. Ha ez nem sikerül, a rendszer jelszó nélkül kísérli meg a kapcsolatot a kapcsolati sztringben.

A Microsoft Entra ID felhasználói hitelesítésének támogatása az Azure MySQL-hez

Felhasználói jogkivonat hozzáadva jelszómezőként a MySQL-lel való hitelesítéshez a Microsoft Entra ID beépülő modullal.

A 0.3.7-es verzió újdonságai

Az ehhez a verzióhoz tartozó kibocsátási megjegyzések teljes listája a GitHubon érhető el: https://github.com/Azure/data-api-builder/releases/tag/v0.3.7-alpha.

Támogatás megtekintése

A nézetek mostantól REST-ben és GraphQL-ben is támogatottak. Ha van nézete, például dbo.vw_books_details a következő dab paranccsal teheti közzé:

dab add BookDetail --source dbo.vw_books_details --source.type View --source.key-fields "id" --permissions "anonymous:read"

Ezzel source.key-fields a beállítással adhatja meg, hogy a nézet mely mezői használhatók az elemek egyedi azonosítására, hogy az elsődleges kulcs szerinti navigáció a nézetekhez is implementálható legyen. A DAB-t konfiguráló fejlesztő feladata a műveletek (például a create művelet) engedélyezése vagy letiltása attól függően, hogy a nézet frissíthető-e vagy sem.

Tárolt eljárások támogatása

A tárolt eljárások mostantól támogatottak a REST-kérések esetében. Ha rendelkezik tárolt eljárással, például dbo.stp_get_all_cowritten_books_by_author a következő dab paranccsal teheti közzé:

dab add GetCowrittenBooksByAuthor --source dbo.stp_get_all_cowritten_books_by_author --source.type "stored-procedure" --permissions "anonymous:read" --rest true

A paraméter a REST-végpont meghívásakor az URL-lekérdezési sztringben adható át:

http://<dab-server>/api/GetCowrittenBooksByAuthor?author=isaac%20asimov

Megjegyzés

A DAB-t konfiguráló fejlesztő feladata, hogy engedélyezze vagy tiltsa le a műveleteket (például a create műveletet) adott HTTP-műveletek engedélyezésére vagy letiltására a tárolt eljárás meghívásakor. Például a példában használt tárolt eljárás esetében, mivel a célja bizonyos adatok visszaadása, célszerű csak a read műveletet engedélyezni.

Microsoft Entra ID-hitelesítés

A Microsoft Entra ID-hitelesítés most már teljes mértékben működik. További információ: Hitelesítés a Microsoft Entra-azonosítóval.

Új szimulátorhitelesítési szolgáltató helyi hitelesítéshez

A hitelesített kérések tesztelésének egyszerűsítése érdekében a helyi fejlesztés során egy új simulator hitelesítési szolgáltató érhető el. A szolgáltató simulator egy konfigurálható hitelesítési szolgáltató, amely arra utasítja a Data API Builder-motort, hogy az összes kérést hitelesítettként kezelje. További részletek itt: Helyi hitelesítés

Dokumentumokon belüli beágyazott objektumok szűrésének támogatása az Azure Cosmos DB-ben

Az Azure Cosmos DB-vel használhatja a sémában definiált objektum- vagy tömbkapcsolatot, amely lehetővé teszi szűrési műveletek elvégzését a beágyazott objektumokon.

query {
  books(first: 1, filter : { author : { profile : { twitter : {eq : ""@founder""}}}})
    id
    name
  }
}