Jaa


Kyselyn tekeminen useista tietolähteistä Fabric-ohjelmointirajapinnassa GraphQL:lle

Yksi Fabric API:n keskeisistä eduista GraphQL:lle on kyky avata useita tietolähteitä—kuten järvitaloja, varastoja ja tietokantoja—yhden yhtenäisen API-päätepisteen kautta. Tämä tarkoittaa, että sovelluksesi voivat hakea dataa eri lähteistä yhdellä GraphQL-kyselyllä, jolloin ei tarvitse yhdistää useisiin rajapintoihin tai tietokantoihin erikseen.

Esimerkiksi asiakastiedot voivat olla yhdessä varastossa ja varastotiedot toisessa järvenrakennuksessa. Sen sijaan, että tekisit kaksi erillistä API-kutsua, voit kysellä molempia lähteitä samanaikaisesti GraphQL API:n kautta, mikä vähentää verkon kuormitusta ja yksinkertaistaa sovelluskoodiasi.

Miten monilähdekyselyt toimivat

Kun lähetät GraphQL-kyselyn, joka kattaa useita tietolähteitä, API jakaa automaattisesti yksittäiset pyynnöt jokaiselle tietolähteelle rinnakkain ja yhdistää tulokset yhdeksi vastaukseksi. Tämä lähestymistapa:

  • Vähentää edestakaisia matkoja: Sovelluksesi tekee yhden pyynnön useiden peräkkäisten puheluiden sijaan
  • Parantaa suorituskykyä: Rinnakkainen suoritus tarkoittaa nopeampia kokonaisvasteaikoja
  • Yksinkertaistaa asiakaskoodia: Työskentelet yhden API-rajapinnan kanssa riippumatta siitä, missä data on tallennettu

Tärkeää

Monilähdekyselyillä on seuraavat rajoitukset:

  • Et voi luoda suhteita tyyppien välille, jotka kattavat eri tietolähteitä. Suhteet toimivat vain yhden tietolähteen sisällä.
  • Yksittäiset pyynnöt jokaiselle tietolähteelle suoritetaan rinnakkain ilman taattua järjestystä.
  • Jokainen pyyntö tietolähteelle on itsenäinen – ei ole transaktiota, joka kattaisi useita lähteitä.

Kyselyesimerkki

Liiketoimintatilanne: Kuvittele, että rakennat kojelaudan, joka näyttää asiakastiedot ja tuotevaraston tilan rinnakkain. Asiakastietosi sijaitsevat myyntivarastossa (ContosoSales), kun taas tuotevarastosi hallinnoidaan erillisessä varastossa (ContosoInventory), jota toimitusketjusi päivittävät. Ilman monilähdetukea sinun pitäisi tehdä kaksi erillistä API-kutsua, hallita kahta eri yhteyttä ja yhdistää data itse sovelluskoodiisi.

Fabric API:n avulla GraphQL:lle voit hakea dataa molemmista lähteistä yhdellä kyselyllä:

query {
  customers (first: 1) {
    items {
      FirstName
      LastName
    }
  }
  inventories (first: 1) {
    items {
      Name
    }
  }
}

Tämä yksittäinen pyyntö hakee asiakastiedot ContosoSalesin tietolähteestä ja varaston tuotteet ContosoInventorsin tietolähteestä rinnakkain, yhdistäen ne yhdeksi vastaukseksi. Hallintapaneelisi saa kaiken tarvittavan datan yhdellä API-kutsulla kahden sijaan.

Pyynnön tulos on seuraava:

{
  "data": {
    "customers": {
      "items": [
        {
          "FirstName": "Orlando",
          "LastName": "Gee"
        }
      ]
    },
    "inventories": {
      "items": [
        {
          "Name": "AWC Logo Cap"
        }
      ]
    }
  }
}

Vastausrakenne heijastaa kyselyrakennetta. Objektin data sisällä on kaksi ylätason kenttää (customers ja inventories), jotka vastaavat kahta tekemääsi kyselyä. Jokainen kenttä sisältää taulukon items , jossa on todelliset tulokset. Alkioilla customers on ominaisuuksia kuten FirstName ja LastName, kun taas kohteilla inventories on ominaisuuksia kuten Name—täsmälleen kuten kyselyssä pyydettiin.

Kyselynäkymä näyttää tältä, kun suoritat tämän pyynnön:

Näyttökuva editorinäytöstä, jossa näkyy kysely, joka kattaa kaksi tietolähdettä.