6. poglavje: Uporaba spletnega API-ja v aplikaciji

Mateja in Svetlana sta pripravljeni združiti aplikacijo s spletnim API-jem. Vendar pa se odločita, da se bosta pred nadaljevanjem posvetovali s Patricijo, vodjo operacij IT.

Razumevanje zahtev upravljanja operacij IT za spletni API

Patricijo skrbi, da morata biti aplikacija in spletni API varna, ker zagotavljata dostop do občutljivih podatkov, shranjenih v različnih zbirkah podatkov. Želi zagotovilo, da bo lahko vključila preverjanje pristnosti in avtorizacijo, da se prepreči neupravičen dostop do informacij. Prav tako pa se Patricija zaveda, da se podjetje hitro širi ter da se bo obseg podatkov, vključenih v upravljanje strank, terminov, delov in zbirke znanja verjetno kmalu eksponentno povečal. Posledično želi, da je rešitev razširljiva.

Svetlana pojasni Patriciji, da je spletni API trenutno izveden s storitvijo aplikacije Azure. Ta storitev podpira številne ponudnike preverjanja pristnosti, ki jih lahko Patricija konfigurira z uporabo portala Azure. Patricijo še posebej zanima Azure Active Directory, ker želi VanArsdel to obliko preverjanja pristnosti v bližnji prihodnosti razširiti na številne druge sisteme v podjetju.

Konfiguracija preverjanja pristnosti storitve aplikacije.

Storitev aplikacije zagotavlja tudi vodoravno in navpično razširljivost. Po potrebi lahko Patricija navpično razširi vire, ki so na voljo spletnemu API-ju z nadgradnjo načrta storitve aplikacije za spletno aplikacijo:

Navpično prilagajanje storitve aplikacije.

Lahko uredi tudi, da sistem izvede vodoravno prilagajanje, tako da konfigurira samodejno prilagajanje. Storitev aplikacije omogoča vodji dejavnosti, da opredeli pravila samodejnega prilagajanja, ki določajo pogoje, pod katerimi naj sistem izvede vodoravno prilagajanje navzven po več primerkih, ko se obremenitev poveča, ali navznoter, ko potreba upade. Prav tako lahko konfigurira preventivno samodejno prilagajanje po urniku:

Vodoravno prilagajanje storitve aplikacije.

Ključni del vloge vodje operacij IT je, biti pozoren na to, kako se lahko sistemi razvijajo, ter zagotoviti, da bodo osnovne podporne strukture kos prihodnjim širitvam in spremembam. Patricija ve, da bo lahko spletni API, ki ga je razvila Svetlana, v prihodnosti razširjen in znova uporabljen v drugih sistemih podjetja VanArsdel. Zanjo je pomembno, da lahko upravlja in nadzoruje način, kako razvijalci zahtevajo uporabo spletnega API-ja, tega varuje kot dragocen vir in spremlja njegovo uporabo. Zato se Patricija odloči zavarovati spletni API za storitvijo upravljanja vmesnikov API Azure.

Upravljanje vmesnikov API zagotavlja dodaten sloj varnosti za spletni API ter omogoča podrobno spremljanje in nadzor, kateri odjemalci lahko dostopajo do katerih operacij. Z uporabo upravljanja vmesnikov API lahko Patricija upravlja uporabo virov in omejuje zmogljivosti odjemalcev z nizko prioriteto, da zagotovi hitrejše zagotavljanje storitev ključnim aplikacijam z višjo prioriteto.

Za informacije o storitvah, ki jih zagotavlja upravljanje vmesnikov API, pojdite na O upravljanju vmesnikov API.

Ustvarjanje storitve upravljanja vmesnikov API

Patricija je ustvarila storitev upravljanja vmesnikov API v portalu Azure z uporabo naslednjih korakov:

  1. Vpišite se v portal Azure in na strani Osnovno izberite Ustvari vir.

    Osnovna stran portala Azure.

  2. V besedilno polje Iskanje po mestu Marketplace vnesite Upravljanje vmesnikov API, nato pa izberite Enter.

  3. Na strani Upravljanje vmesnikov API izberite Ustvari.

    Stran storitve ustvarjanja upravljanja vmesnikov API Azure.

  4. Na strani Ustvari upravljanje vmesnikov API vnesite naslednje vrednosti, nato pa izberite Preglej in ustvari:

    • Naročnina: izberite svojo naročnino
    • Skupina virov: webapi_rg (to je ista skupina virov, ki ste jo ustvarili za storitev aplikacije)
    • Regija: izberite svojo najbližjo regijo
    • Ime vira: vnesite enolično ime za storitev.
    • Ime organizacije: VanArsdel
    • E-pošta skrbnika: itadmin@vanarsdel.com
    • Cenovni razred: Razvijalec (brez pogodbe o ravni storitve)

    Opomba

    Ne uporabite cenovnega razreda Razvijalec za produkcijski sistem.

    Stran storitve novega upravljanja vmesnikov API.

  5. Na strani za potrjevanje izberite Ustvari in počakajte, da je ustvarjena storitev upravljanja vmesnikov API.

    Opomba

    Omogočanje storitve upravljanja vmesnikov API lahko traja 30 minut ali več; bodite potrpežljivi.

Objavljanje spletnega API-ja prek upravljanja vmesnikov API

Ko je bila storitev upravljanja vmesnikov API ustvarjena, je Patricija objavila spletni API, da je omogočila dostop do njega drugim storitvam in aplikacijam. Uporabila je naslednje korake:

  1. V portalu Azure pojdite na storitev upravljanja vmesnikov API.

  2. Na strani Storitev upravljanja vmesnikov API v levem podoknu pod možnostjo API-ji izberite API-ji:

    Stran storitve upravljanja vmesnikov API. Izbira API-jev.

  3. V Dodajte nov API podokno, izberite OpenAPI:

    Stran storitve upravljanja vmesnikov API. Izberite OpenAPI.

  4. V Ustvarite iz OpenAPI specifikacijo pogovorno okno, vnesite naslednje vrednosti in nato izberite Ustvari:

    • OpenAPI specifikacija: https://<webapp name> .azurewebsites.net/swagger/v1/swagger.json, kje <webapp name> je ime storitve aplikacij, ki gosti vaš spletni API
    • Prikazno ime: API terenskega serviserja
    • Ime: field-engineer-api
    • Pripona URL API-ja: pustite prazno
    • Osnovni URL: uporabi privzeti URL

    Ustvari API iz OpenAPI specifikacijo.

  5. Ko je API terenskega serviserja ustvarjen, izberite zavihek Nastavitve za API, nastavite URL spletne storitve na https://<webapp name>.azurewebsites.net, nato pa izberite Shrani:

    Konfiguriranje nastavitev API.

  6. Na zavihku Preskus izberite GET URI API-ja/terminov, nato pa izberite Pošlji:

    Preskus API-ja GetAppointments.

  7. Preverite, ali je zahteva uspešna (povratna koda HTTP je 200 OK) in da vrne rezultat, ki vsebuje seznam terminov v odzivnem telesu:

    Odziv pri preskušanju API-ja GetAppointments.

Povezovanje z upravljanjem vmesnikov API iz aplikacije

Svetlana in Mateja lahko zdaj sodelujeta pri povezovanju aplikacije, izdelane s storitvijo Power Apps, s spletnim API-jem prek storitve upravljanja vmesnikov API.

Prvo opravilo je ustvarjanje povezovalnika po meri, ki ga aplikacija uporablja za komuniciranje z upravljanjem vmesnikov API. To vključuje izvoz API-ja v okolje Power Apps, uporabljeno za ustvarjanje aplikacije, kar Svetlana naredi po naslednjih navodilih:

  1. V portalu Azure odprite stran za storitev upravljanja vmesnikov API, ki jo je ustvarila Patricija.

  2. V levem podoknu pod možnostjo API-ji izberite API-ji.

  3. Izberite gumb s tremi pikami za API terenskega serviserja in nato izberite Izvozi.

    Izvoz spletnega API-ja.

  4. V podoknu Izvozi API izberite Power Apps in Power Automate:

    Izvoz spletnega API-ja v Power Apps.

  5. V podoknu Izvoz API-ja v PowerApps izberite okolje Power Apps, v katerem ste ustvarili prototip aplikacije (na naslednji sliki Mateja), nato pa izberite Izvozi.

    Izvoz v Matejino okolje Power Apps.

  6. Potem ko ste izvozili API, izberite API terenskega serviserja. Na strani Nastavitve se pomaknite navzdol do razdelka Naročnine, počistite Zahtevana naročnina, nato pa izberite Shrani.

    Preklic izbire zahtevane naročnine.

Prototip aplikacije je uporabil Excelove delovne zvezke za vire podatkov. Zdaj ko je na voljo povezovalnik po meri za spletni API, Mateja izvede naslednje korake za dodajanje povezovalnika v aplikacijo:

  1. Vpis v storitev Power Apps.

  2. V levem podoknu razširite možnost Podatki in izberite Povezovalniki po meri. Naveden bi moral biti povezovalnik po meri field-engineer-api. Izberite Ustvari povezavo.

    Ustvarjanje novega povezovalnika po meri.

  3. V pogovornem oknu field-engineer-api izberite Ustvari.

    Ustvarjanje povezovalnika FieldEngineerAPI.

  4. Ko je bila povezava ustvarjena, potrdite, da je prikazana na seznamu razpoložljivih povezav.

    Prikaz razpoložljivih povezav.

  5. V levem podoknu izberite Aplikacije, izberite VanArsdelApp, nato pa izberite Uredi.

    Urejanje aplikacije VanArsdel.

  6. V levem podoknu izberite zavihek Podatki. Izberite Dodajanje podatkov, izberite gumb s tremi pikami za Povezovalniki, nato pa izberite Osveži.

    Osveževanje virov podatkov.

  7. Na seznamu povezovalnikov izberite povezovalnik field-engineer-api.

    Prikaz povezovalnikov.

  8. V pogovornem oknu field-engineer-api izberite povezovalnik field-engineer-api.

    Dodajanje povezave FieldEngineerAPI.

  9. V podoknu Podatki potrdite, da je povezovalnik FieldEngineerApi naveden.

    Povezava FieldEngineerAPI dodana.

Posodabljanje aplikacije za uporabo povezovalnika: upravljanje terenske zaloge

Zdaj, ko je bila povezava dodana v aplikacijo, lahko Mateja prilagodi zaslone, da jo uporabijo za zamenjavo Excelovih delovnih zvezkov. To vključuje metodično obdelavo vsakega zaslona in spreminjanje vira podatkov. Druge spremembe ne bi smele biti potrebne. Začne z zaslonoma BrowseParts in PartDetails po naslednjih navodilih:

  1. Na zaslonu Osnovno aplikacije izberite gumb Deli. Nastavite lastnost dejanja OnSelect na naslednjo formulo.

    ClearCollect(partsCollection, FieldEngineerAPI.getapiboilerparts());
    
    Navigate(BrowseParts, ScreenTransition.Fade)
    

    Funkcija ClearCollect ustvari novo povezavo, imenovano partsCollection, in jo zapolni s podatki, ki so rezultat priklica operacije getboilerparts v povezavi FieldEngineerAPI.

    Ustvarjanje spremenljivke partsCollection.

    Opomba

    Dobra praksa je, pridobiti podatke v zbirko in se sklicevati na to zbirko iz katerega koli zaslona, ki potrebuje informacije. Ta pristop lahko različnim zaslonim prihrani večkratno izvajanje iste poizvedbe in pridobivanjem istih podatkov.

  2. Izberite F5 za predogled aplikacije.

  3. Na zaslonu Osnovno izberite Deli. To dejanje bo ustvarilo zbirko partsCollection. Zaprite okno za predogled in se vrnite v Power Apps Studio.

    Opomba

    Namen tega koraka je omogočiti ogled podatkov med urejanjem zaslona BrowseParts v naslednjih korakih.

  4. Izberite kontrolnik BrowseGallery1 na zaslonu BrowseParts. V formuli za lastnost Elementi nadomestite sklic na vir podatkov [@Table1] z možnostjo partsCollection.

    Ta sprememba bo povzročila nekaj napak. To pa zato, ker so imela imena polj v prvotnem Excelovem delovnem zvezku veliko začetnico (Ime, CategoryID in Pregled), medtem ko so lastnosti, vrnjene v telesu odziva spletnega API-ja, poimenovane z malo začetnico. Spremenite te sklice tako, da bodo uporabljali male črke. Formula bi morala biti taka, kot v nadaljevanju.

    SortByColumns(Search(FieldEngineerApi.getapiboilerparts(), TextSearchBox1.Text, "name", "categoryId", "overview"), "name", If(SortDescending1, Descending, Ascending))
    

    Posodobitev formule za zaslon za brskanje.

  5. V podoknu Drevesni pogled izberite kontrolnik IconRefresh1. Spremenite dejanje OnSelect na formulo ClearCollect(partsCollection, FieldEngineerAPI.getapiboilerparts()).

    Opomba

    Prvotna formula za to dejanje prikliče funkcijo Osveži za vnovično zapolnjevanje podatkov z uporabo povezave s prvotnim virom podatkov. Funkcije Osveži ni mogoče uporabiti s povezavo, ki izvede funkcijo za pridobivanje podatkov, zato ne bo delovala z možnostjo FieldEngineerApi.getapiboilerparts(). Rešitev v tem koraku znova zapolni zbirko partsCollection z najnovejšimi podatki.

  6. V podoknu Drevesni pogled razširite kontrolnik BrowseGallery1 in izberite Body1. Spremenite lastnost Besedilo na ThisItem.overview.

  7. V podoknu Drevesni pogled izberite kontrolnik Subtitle1. Spremenite lastnost Besedilo na ThisItem.categoryId.

  8. V podoknu Drevesni pogled izberite kontrolnik Naslov. Spremenite lastnost Besedilo na ThisItem.name.

  9. V podoknu Drevesni pogled izberite kontrolnik DetailForm1 na zaslonu PartDetails. Spremenite lastnost DataSource z [@Table1] na partsCollection.

  10. V podoknu Drevesni pogled izberite Name_DataCard1 pod možnostjo DetailForm1. Spremenite lastnost Privzeto na ThisItem.name.

    Spreminjanje privzetega za podatkovno kartico imena.

  11. Spremenite lastnost Privzeto kontrolnika CategoryID_DataCard1 na ThisItem.categoryId.

  12. Spremenite lastnost Privzeto kontrolnika Overview_DataCard1 na ThisItem.overview.

  13. Spremenite lastnost Privzeto kontrolnika Price_DataCard1 na ThisItem.price.

  14. Spremenite lastnost Privzeto kontrolnika NumberInStock_DataCard1 na ThisItem.numberInStock.

  15. Spremenite lastnost Privzeto kontrolnika Image_DataCard1 na ThisItem.imageUrl.

  16. V levem podoknu na zavihku Podatki z desno tipko miške kliknite podatkovno povezavo Table1 in nato izberite Odstrani za izbris iz aplikacije. Ta povezava ni več potrebna.

    Odstranjevanje povezave Table1.

  17. Shranite aplikacijo.

    Opomba

    Aplikacijo lahko hitro shranite brez uporabe menija Datoteka, tako da izberete Ctrl + S.

  18. Izberite F5 za predogled aplikacije. Zaslona Prebrskaj dele in Podrobnosti dela bi morala delovati čisto enako kot prej, razen da zdaj pridobivata podatke iz zbirke podatkov SQL Azure InventoryDB prek spletnega API-ja, namesto iz lokalne Excelove datoteke.

  19. Zaprite okno za predogled in se vrnite v Power Apps Studio.

Posodabljanje aplikacije za uporabo povezovalnika: terensko razporejanje in opombe

Mateja nadaljuje z zasloni BrowseAppointments, AppointmentDetails in EditAppointment. Podatki, predstavljeni na teh zaslonih, trenutno izvirajo iz tabele Termini v drugem Excelovem delovnem zvezku.

  1. Na zaslonu Osnovno aplikacije nastavite dejanje OnVisible na naslednjo formulo.

    ClearCollect(appointmentsCollection, Sort(Filter(FieldEngineerAPI.getapiappointments(), DateDiff(Today(), startDateTime) >= 0), startDateTime))
    

    Ta formula pridobi podatke o terminih v zbirko appointmentsCollection. Termini so filtrirani za pridobivanje obiskov, načrtovanih na ali po trenutnem datumu.

  2. Izberite kontrolnik oznake, ki prikazuje čas naslednjega termina. Nastavite lastnost Besedilo na Text(First(appointmentsCollection).startDateTime, ShortTime24).

  3. Izberite kontrolnik oznake, ki prikazuje datum za naslednji termin. Nastavite lastnost Besedilo na Text(First(appointmentsCollection).startDateTime, LongDate).

  4. Izberite kontrolnik oznake, ki prikazuje ime stranke za naslednji sestanek. Nastavite lastnost Besedilo na First(appointmentsCollection).customer.name.

  5. Izberite F5 za predogled aplikacije. Na zaslonu Osnovno izberite Termini. To dejanje bo ustvarilo zbirko appointmentsCollection. Zaprite okno za predogled in se vrnite v Power Apps Studio.

  6. V podoknu Drevesni pogled izberite kontrolnik BrowseAppointmentsGallery na zaslonu BrowseAppointments. Spremenite formulo v lastnosti Elementi na naslednjo formulo.

    Sort(Filter(appointmentsCollection, StartsWith(customer.name, TextSearchBox1\_1.Text)), startDateTime)
    

    Ta formula filtrira podatke, prikazane na zaslonu, po imenu stranke, kar uporabniku omogoča vnos imena stranke. Termini so prikazani v vrstnem redu datumov in ure.

  7. V podoknu Drevesni pogled razširite kontrolnik BrowseAppointmentsGallery in izberite kontrolnik Title1_1. Spremenite lastnost Besedilo na naslednje.

    Text(ThisItem.startDateTime, LongDate)
    

    Ta formula prikazuje datumski del polja startDateTime za termin.

  8. V podoknu Drevesni pogled razširite kontrolnik BrowseAppointmentsGallery in izberite kontrolnik Subtitle1_1. Spremenite lastnost Besedilo na naslednje.

    Text(ThisItem.startDateTime, ShortTime24)
    

Ta formula prikazuje časovni element polja startDateTime.

  1. V podoknu Drevesni pogled razširite kontrolnik BrowseAppointmentsGallery in izberite kontrolnik Body1_1. Spremenite lastnost Besedilo na naslednje.

    ThisItem.customer.name
    
  2. V podoknu Drevesni pogled izberite kontrolnik IconRefresh1_1 na zaslonu BrowseAppointments. Nastavite dejanje OnSelect na naslednjo formulo.

    ClearCollect(appointmentsCollection, Sort(Filter(FieldEngineerAPI.getapiappointments(), DateDiff(Today(), startDateTime) >= 0), startDateTime));
    
  3. V podoknu Drevesni pogled razširite zaslon AppointmentDetails in izberite kontrolnik DetailForm1_1. Nastavite lastnost DataSource na appointmentsCollection.

  4. V podoknu Drevesni pogled izberite kontrolnik IconEdit1. Prilagodite formulo v lastnosti DisplayMode za preskus zbirke appoinmentsCollection.

    If(DataSourceInfo(**appointmentsCollection**, DataSourceInfo.EditPermission), DisplayMode.Edit, DisplayMode.Disabled)
    
  5. V podoknu Drevesni pogled razširite zaslon DetailForm1_1 in izberite kontrolnik Customer Name_DataCard1. Spremenite lastnost Privzeto na ThisItem.customer.name.

  6. Spremenite lastnosti Privzeto preostalih podatkovnih kartic po naslednjih navodilih:

    • Customer Address_DataCard1: ThisItem.customer.address
    • Contact Number_DataCard1: ThisItem.customer.contactNumber
    • Problem Details_DataCard1: ThisItem.problemDetails
    • Status_DataCard1: ThisItem.appointmentStatus.statusName
    • Notes_DataCard1: ThisItem.notes
    • Image_DataCard1_1: ThisItem.imageUrl
  7. V podoknu Drevesni pogled razširite zaslon EditAppointment in izberite kontrolnik EditForm1. Nastavite lastnost DataSource na appointmentsCollection.

  8. V podoknu Drevesni pogled razširite kontrolnik EditForm1 in izberite kontrolnik Customer Name_DataCard3. Spremenite lastnost Privzeto na ThisItem.customer.name.

  9. Spremenite lastnosti Privzeto preostalih podatkovnih kartic po naslednjih navodilih:

  • Contact Number_DataCard2: ThisItem.customer.contactNumber; dodatno spremenite lastnost MaxLength na 20
  • Problem Details_DataCard2: ThisItem.problemDetails
  • Status_DataCard5: ThisItem.appointmentStatus.statusName
  • Notes_DataCard3: ThisItem.notes
  • Image_DataCard2: ThisItem.imageUrl
  1. V podoknu Drevesni pogled razširite kontrolnik Problem Details_Card2. Preimenujte polje DataCardValueX (X bo številka) pod tem kontrolnikom na ProblemDetailsValue. Ponovite ta proces za kontrolnike DataCardValueX na naslednjih podatkovnih karticah:

    • Status_DataCard5: StatusValue
    • Notes_DataCard3: NotesValue

    Opomba

    Kontrolnik slike bo obravnavan v naslednjem poglavju.

  2. Izberite ProblemDetailsValue in nastavite lastnost MaxLength na 100.

  3. V podoknu Drevesni pogled izberite kontrolnik IconAccept1 na zaslonu EditAppointment. Nastavite lastnost dejanja OnSelect na naslednjo formulo.

    FieldEngineerAPI.putapiappointmentsid(BrowseAppointmentsGallery.Selected.id, {problemDetails:ProblemDetailsValue.Text, statusName:StatusValue.Selected.Value, notes:NotesValue.Text, imageUrl:""});
    
    Remove(appointmentsCollection, First(Filter(appointmentsCollection, id=BrowseAppointmentsGallery.Selected.id)));
    
    Set(appointmentRec, FieldEngineerAPI.getapiappointmentsid(BrowseAppointmentsGallery.Selected.id));
    
    Collect(appointmentsCollection, appointmentRec);
    
    Navigate(AppointmentDetails, ScreenTransition.None);
    

    Ta formula prikliče operacijo PUT za kontrolnik terminov v spletnem API-ju. ID termina za trenutni termin posreduje kot prvi parameter, ki mu sledijo podrobnosti, ki jih je uporabnik morda prilagodil na zaslonu. Podrobnosti se posredujejo kot predmet JSON. Izjave Remove, Set in Collect posodobijo zbirko appointmentsCollection s podatki, shranjenimi v zbirki podatkov.

    Opomba

    V takih situacijah ne uporabite funkcije ClearCollect za brisanje in osveževanje celotne zbirke, ker bi bilo to potratno, če bi bil na primer spremenjen samo en zapis.

  4. V podoknu Drevesni pogled izberite kontrolnik IconAccept1 na zaslonu EditAppointment. Nastavite lastnost dejanja OnSelect na naslednje.

    ResetForm(EditForm1);
    
    Navigate(AppointmentDetails, ScreenTransition.None);
    
  5. V levem podoknu na zavihku Podatki z desno tipko miške kliknite podatkovno povezavo Termini in nato izberite Odstrani za izbris iz aplikacije.

  6. Shranite aplikacijo.

  7. Izberite F5 za predogled aplikacije. Na zaslonu Osnovno pojdite na zaslon Termini, izberite in uredite termin, nato pa shranite spremembe. Preverjanje, ali je bil termin posodobljen.

  8. Zaprite okno za predogled in se vrnite v Power Apps Studio.

Ustvarjanje storitve Azure Cognitive Search za terensko zbirko znanja

Zaslon zbirke znanja v aplikaciji trenutno ni pritrjen na noben vir podatkov. Spletni API vključuje operacija za poizvedovanje in posodabljanje tabel Nasveti, BoilerParts in Serviserji v zbirki podatkov KnowledgeDB. Vendar pa je namen zaslona Poizvedba v aplikaciji podpora iskanja po vseh teh tabelah. Obseg podatkov v teh tabelah se bo verjetno hitro povečal, zato se Mateja, Svetlana in Patricija odločijo, da bodo uvedle Azure Cognitive Search v podporo tej funkciji. Aplikacija lahko pošilja poizvedbe in prejema rezultate iz storitve Azure Cognitive Search prek povezovalnika po meri.

Azure Cognitive Search deluje najbolje, če so podatki, ki se preiskujejo, združeni v eno entiteto zbirke podatkov. Svetlana ustvari pogled v zbirki podatkov KnowledgeDB, ki predstavlja poenoten pogled tabel Nasveti, BoilerParts in Serviserji, po naslednjih navodilih:

  1. V portalu Azure pojdite na stran Zbirka podatkov SQL KnowledgeDB.

  2. V levem podoknu izberite Urejevalnik poizvedb in se vpišite v zbirko podatkov kot sqladmin z uporabo gesla Pa55w.rd.

    Vpis v zbirko podatkov SQL Azure.

  3. V oknu poizvedb vnesite naslednjo izjavo, nato pa izberite Zagon.

    CREATE OR ALTER VIEW [dbo].[Knowledge] AS
    SELECT T.Id, T.Subject, T.Body, B.Name, B.Overview
    FROM [dbo].[Tips] T INNER JOIN [dbo].[BoilerParts] B
    ON B.Id=T.KnowledgeBaseBoilerPartId
    

    Ustvarjanje pogleda »Znanje«

    Potrdite, da je bil pogled Znanje uspešno ustvarjen.

  4. V levem podoknu izberite Nizi povezav. Zabeležite si niz povezave ADO.NET; potrebovali ga boste pri konfiguraciji storitve Azure Cognitive Search.

    Niz povezave ADO.NET za zbirko podatkov KnowledgeDB.

V sodelovanju s Svetlano Patricija konfigurira nov primerek storitve Azure Cognitive Search za izvajanje iskanj po vrsticah v pogledu Znanje po naslednjih navodilih:

  1. Na strani Osnovno v portalu Azure izberite + Ustvari vir, vnesite Azure Cognitive Search, izberite Enter, nato pa izberite Ustvari.

    Ustvarjanje storitve Azure Cognitive Search.

  2. Na strani Nova storitev iskanja vnesite naslednje nastavitve, nato pa izberite Preglej in ustvari:

    • Naročnina: izberite svojo naročnino Azure
    • Skupina virov: webapi_rg
    • Ime storitve: vnesite enolično ime za storitev.
    • Ime lokacije: izberite svojo najbližjo regijo
    • Cenovni razred: Brezplačno
  3. Na strani za potrjevanje izberite Ustvari in počakajte, da je storitev omogočena za uporabo.

  4. Pojdite na stran za novo storitev iskanja, izberite Pregled, zabeležite si URL (potrebovali ga boste pozneje, ko ustvarite povezovalnik po meri za Power Apps), nato pa izberite Uvozi podatke.

    Stran s pregledom storitve iskanja.

  5. Na strani Uvoz podatkov v polju spustnega menija Vir podatkov izberite Zbirka podatkov SQL Azure.

    Izbira zbirke podatkov SQL Azure.

  6. Na strani Vzpostavite povezavo s svojimi podatki določite naslednje nastavitve:

    • Vir podatkov: Zbirka podatkov SQL Azure
    • Ime vira podatkov: zbirka znanja
    • Niz povezave: vnesite niz povezave zbirke podatkov SQL Azure za zbirko podatkov KnowledgDB, ki ste jo zabeležili prej; v tem nizu zagotovite, da nastavite geslo na Pa55w.rd
    • Pustite polji ID uporabnika in Geslo na privzetih vrednostih; ti elementi se pridobijo iz niza povezave
  7. Izberite Preskusi povezavo. Zagotovite, da je preskus uspešen, izberite [Znanje] v polju spustnega seznama Tabela/pogled in nato izberite Naprej: Dodaj kognitivne veščine (izbirno).

    Določanje pogleda iskanja.

  8. Na strani Dodaj kognitivne veščine (izbirno) izberite Preskoči na: Prilagodi ciljno kazalo.

  9. Na strani Prilagodi ciljno kazalo izberite Možnost pridobivanja za vse stolpce in Možnost iskanja za Zadeva, Telo, Ime in Pregled. Izberite Naprej: Ustvari indekser.

    Prilagajanje ciljnega kazala.

  10. Na strani Ustvari indekser spremenite Ime za indekser na knowledgebase-indexer. Za Urnik izberite Urni, nastavite Stolpec višje vrednosti vodnega žiga na ID, nato pa izberite Pošlji:

    Ustvarjanje indekserja.

  11. Za preskus indekserja na strani Pregled za storitev iskanja izberite Raziskovalec iskanja:

    Izbira raziskovalca iskanja.

  12. V polje Niz poizvedbe vnesite besedo, ki jo želite poiskati v zbirki znanj, nato pa izberite Poišči. Storitev iskanja bi morala ustvariti seznam dokumentov z ujemanjem v poljih Zadeva, Telo, Ime ali Pregled in jih prikazati v podoknu Rezultati. Zabeležite si URL zahteve in vzorca Rezultati; ta elementa boste potrebovali pozneje kot primer zahteve in odziva, ko boste nastavljali povezovalnik po meri Power Apps.

    Rezultati iskalne poizvedbe.

Ustvarjanje povezovalnika po meri za storitve Azure Cognitive Search

Svetlana lahko zdaj ustvari povezovalnik po meri, ki ga Power Apps uporablja za pošiljanje zahtev v storitev iskanja. To naredi z uporabo storitve Power Apps Studio po naslednjih navodilih:

  1. Vpis v storitev Power Apps.

  2. V levem podoknu razširite možnost Podatki in izberite Povezovalniki po meri. V desnem podoknu izberite + Nov povezovalnik po meri, nato pa izberite Ustvarjanje od začetka:

    Nov povezovalnik po meri.

  3. V pogovornem oknu Ustvarjanje od začetka nastavite ime novega povezovalnika na VanArsdelKBConnector, nato pa izberite Nadaljuj:

    Ustvarjanje povezovalnika zbirke znanja.

  4. Na strani Splošne informacije vnesite opis in nastavite možnost Shema na HTTPS. V polje Gostitelji vnesite URL za storitev iskanja (ta URL ste si prej zabeležili), toda brez predpone https://, nato pa izberite Varnost.

    Stran »Splošno« povezovalnika storitve iskanja.

  5. Na strani Varnost v polju spustnega seznama Preverjanje pristnosti izberite Ključ API. V polje Oznaka parametra vnesite api-key. V polje Ime parametra vnesite api-key. Izberite Definicija.

    Stran »Varnost« povezovalnika storitve iskanja.

  6. Na strani Definicija izberite Novo dejanje. V polje Povzetek vnesite Poizvedba. V polje Opis vnesite Poizvedba po zbirki podatkov. V polje ID operacije vnesite Poizvedba. Pod možnostjo Zahteva izberite + Uvozi iz vzorca.

    Stran »Definicija« povezovalnika storitve iskanja.

  7. V pogovornem oknu Uvozi iz vzorca vnesite naslednje vrednosti in nato izberite Uvozi:

    • Glagol: GET
    • URL: Zagotovite primer URL-ja zahteve, ki ste ga zabeležili, ko ste prej preskušali storitev iskanja v raziskovalcu iskanja
    • Glave: Content-type

    Uvoz definicije iz vzorčne zahteve.

  8. Nazaj na strani Definicija se pomaknite navzdol do razdelka Poizvedba izberite gumb s tremi pikami poleg možnosti Iskanje, nato pa izberite Uredi.

    Urejanje definicije zahteve iskanja.

  9. Na zaslonu za urejanje v razdelku Parametri v polju Privzeta vrednost vnesite zvezdico (*_). Pustite druga polja na privzetih vrednostih in nato izberite _ Nazaj.

    Nastavitev privzete vrednosti iskanja.

  10. Na strani Definicija v razdelku Poizvedba izberite gumb s tremi pikami poleg možnosti api-version, nato pa izberite Uredi.

    Urejanje različice API-ja.

  11. Na zaslonu za urejanje v razdelku Parametri v polje Privzeta vrednost vnesite 2020-06-30-Preview (to je različica, povezana s trenutno različico storitve Azure Cognitive Search; različico lahko vidite v URL-ju zahteve, ki ste ga zabeležili prej). Nastavite Je obvezno na Da in nastavite Vidljivost na interno. Pustite druga polja na privzetih vrednosti in nato izberite Nazaj.

    Nastavite vrednosti API za parametre iskanja.

  12. Na strani Definicija se pomaknite navzdol do razdelka Odziv in izberite + Dodaj privzeti odziv.

    Dodajanje definicije privzetega odziva.]

  13. V pogovornem oknu Uvozi iz vzorca v polje Glave vnesite besedilo Content-type. V polje Telo vnesite primere rezultatov, ki ste jih zabeležili med preskušanjem storitve iskanja in nato izberite Uvozi.

    Uvoz sporočila odziva iz vzorca.

  14. Na strani Definicija izberite odziv Privzeto.

    Izbira privzetega odziva.

  15. V polje Opis odziva Content-type vnesite application/json, nato pa izberite Nazaj.

    Nastavitev vsebine glave sporočila odziva.

    Opomba

    Razdelek Telo te strani bi moral prikazovati polja odziva, kot so Telo, ID, Ime, Pregled in Zadeva, če je bil uspešno razčlenjen.

  16. Izberite Ustvari povezovalnik.

    Ustvarjanje povezovalnika Azure Cognitive Search.

Povezovalnik mora biti ustvarjen brez sporočenih napak ali opozoril.

Posodabljanje aplikacije za uporabo storitve Azure Cognitive Search: terenska zbirka znanja

Mateja lahko zdaj uporabi povezovalnik po meri v aplikaciji. Toda najprej potrebuje ključ, ki ji podeljuje pravice, potrebne za povezovanje s storitvijo Azure Cognitive Search. Patricija pridobi ključ na strani Ključi za storitev v portalu Azure in ga posreduje Mateji.

Ključ storitve iskanja v portalu Azure.

Mateja uredi aplikacijo v storitvi Power Apps Studio in izvede opravila po naslednjih navodilih:

  1. Odprite aplikacijo VanArsdelApp za urejanje.

  2. V meniju Pogled izberite Viri podatkov, nato pa izberite Dodaj podatke.

    Dodajanje vira podatkov v aplikacijo.

  3. V polje iskanje pod možnostjo Izbira vira podatkov vnesite Van. Naveden mora biti povezovalnik VanArdelKBConnector.

    Iskanje za povezovalnik Azure Cognitive Search.

  4. Izberite povezovalnik VanArdelKBConnector. V podoknu VanArdelKBConnector vnesite ključ, ki ga je skrbnik, v tem primeru Patricija, zagotovil za storitev iskanja, nato pa izberite Poveži.

    Vnos ključa API.

  5. V meniju Datoteka shranite in zaprite aplikacijo, nato pa jo spet odprite. Morda boste pozvani, da avtorizirate uporabo povezovalnika po meri, ko se aplikacija spet odpre.

    Opomba

    Ta korak je obvezen za omogočanje povezovalnika po meri.

  6. V podoknu Drevesni pogled razširite zaslon Zbirka znanja in izberite kontrolnik TextSearchBox2. Vnesite naslednjo formulo za dejanje OnChange.

    If(!IsBlank(TextSearchBox2.Text), ClearCollect(azResult, VanArsdelKBConnector.Query({search: TextSearchBox2.Text}).value))
    

    Ta formula prikliče operacijo Poizvedba povezovalnika po meri za elemente, ki se ujemajo z izrazom, ki ga uporabnik vnese v iskalno polje. Rezultati se shranijo v zbirki z imenom azResult.

  7. V podoknu Drevesni pogled pod zaslonom Zbirka znanja izberite kontrolnik BrowseGallery2. Nastavite lastnost Elementi na azResult.

  8. Razširite kontrolnik BrowseGallery2 in odstranite kontrolnik Image4.

  9. Izberite kontrolnik Title2. Nastavite naslednje lastnosti:

    • Besedilo: ThisItem.Subject
    • X: 24
    • Širina: Parent.TemplateWidth - 104
  10. Izberite kontrolnik Subtitle2. Nastavite lastnost Besedilo na ThisItem.Body.

  11. Izberite F5 za predogled aplikacije. Na zaslonu Zbirka znanja vnesite iskalni izraz in nato izberite Enter. Prikazani bi morali biti ujemajoči se članki iz zbirke znanja.

    Poizvedba zbirke znanja v aplikaciji.

    Opomba

    Zaslon s podrobnostmi še ni bil ustvarjen, zato izbira ikone > poleg članka ne deluje.

  12. Zaprite okno za predogled in se vrnite v Power Apps Studio.

  13. V podoknu Drevesni pogled z desno tipko miške kliknite zaslon PartDetails in izberite Podvoji zaslon. To dejanje bo dodalo še en zaslon v aplikacijo, imenovan PartDetails_1.

    Podvojitev zaslona PartDetails.

  14. V podoknu Drevesni pogled preimenujte zaslon PartDetails_1 na KnowledgebaseDetails.

    Izberite kontrolnik LblAppNameX na zaslonu; nastavite lastnost Besedilo na "Podrobnosti članka" (vključno z narekovaji).

  15. V podoknu Drevesni pogled izberite kontrolnik DetailFormX na zaslonu. Nastavite naslednje lastnosti:

    • DataSource: azResult
    • Element: BrowseGallery2.Selected

    Opomba

    BrowseGallery2 je galerija za brskanje na zaslonu Zbirka znanja. V vaši aplikaciji lahko ima ta galerija drugačno ime.

  16. V podoknu Drevesni pogled razširite obrazec DetailFormX in spremenite imena naslednjih kontrolnikov podatkovnih kartic:

    • Name_DataCard1_1: Name_DataCard
    • CategoryID_DataCard1_1: Subject_DataCard
    • Overview_DataCard1_1: Overview_DataCard
    • Price_DataCard1_1: Body_DataCard
  17. Izbrišite kontrolnika NumberInStock_DataCard1_1 in Image_DataCard1_1.

  18. Izberite kontrolnik Name_DataCard. Nastavite lastnost Privzeto na ThisItem.Name.

  19. Izberite kontrolnik Subject_DataCard. Nastavite naslednje lastnosti:

    • DataField: "Subject"
    • DisplayName: "Subject"
    • Privzeto: ThisItem.Subject
  20. Izberite kontrolnik Overview_DataCard. Nastavite lastnost Privzeto na ThisItem.Overview.

  21. Izberite kontrolnik Body_DataCard. Nastavite naslednje lastnosti:

    • DataField: "Body"
    • DisplayName: "Body"
    • Privzeto: ThisItem.Body
  22. Izberite kontrolnik DataCardValueX v kontrolniku Body_DataCard. Nastavite lastnost Besedilo na Parent.Default.

  23. Spremenite velikost vseh kontrolnikov podatkovnih kartic, da jih razporedite po zaslonu.

    Zaslon ArticleDetails.

  24. V glavi zaslona izberite puščico nazaj. Spremenite lastnost dejanja OnSelect na Navigate(Knowledgebase, ScreenTransition.None).

  25. V podoknu Drevesni pogled izberite zaslon Zbirka znanja in nato izberite kontrolnik BrowseGalleryX. Spremenite lastnost dejanja OnSelect na Navigate(KnowledgebaseDetails, ScreenTransition.None). To dejanje prikaže zaslon s podrobnostmi za članek zbirke znanja, ko uporabnik izbere ikono > za vnos na zaslonu za brskanje.

  26. Shranite aplikacijo.

  27. Izberite F5 za predogled aplikacije. Na zaslonu Zbirka znanja vnesite iskalni izraz in nato izberite Enter. Izberite članek in potrdite, da so njegove podrobnosti prikazane. Potrdite, da ikona Nazaj vrne uporabnika na zaslon za brskanje.

  28. Zaprite okno za predogled in se vrnite v Power Apps Studio.

Mateja, Svetlana in Patricija so uspešno vključile spletni API in Azure Cognitive Search v aplikacijo.