Zdieľať cez


Kapitola 6: Použitie webového rozhrania API v aplikácii

Júlia a Kiana sú pripravené kombinovať aplikáciu s webovým rozhraním API. Pred pokračovaním sa však rozhodnú konzultovať s Preeti, manažérkou IT prevádzky.

Pochopenie požiadaviek riadenia prevádzky IT pre webové rozhranie API

Preeti sa obáva, že aplikácia a webové rozhranie API musia byť zabezpečené, pretože poskytujú prístup k citlivým údajom uloženým v rôznych databázach. Preeti chce mať istotu, že overenie a autorizácia budú zahrnuté, aby sa zabránilo neoprávnenému prístupu k informáciám. Preeti si tiež uvedomuje, že spoločnosť sa rýchlo rozširuje a je pravdepodobné, že v blízkej budúcnosti sa exponenciálne zvýši objem údajov zahrnutých do riadenia zákazníkov, plánovaných činností, dielov a vedomostnej databázy. V dôsledku toho musí byť riešenie škálovateľné.

Kiana vysvetľuje Preeti, že webové rozhranie API je momentálne implementované pomocou Azure App Service. Táto služba podporuje množstvo poskytovateľov overovania, ktorých môže Preeti nakonfigurovať pomocou portálu Azure. Preeti sa obzvlášť zaujíma o Microsoft Entra ID, pretože VanArsdel chce v blízkej budúcnosti zaviesť túto formu autentifikácie do mnohých svojich ďalších podnikových systémov.

konfigurácia overovania aplikačnej služby.

Aplikačná služba tiež poskytuje horizontálnu a vertikálnu škálovateľnosť. V prípade potreby môže Preeti zväčšiť zdroje dostupné pre webové rozhranie API inováciou plánu aplikačnej služby pre webovú aplikáciu:

Škálovanie aplikačnej služby.

Preeti môže tiež zariadiť, aby sa systém škáloval konfiguráciou automatického škálovania. Aplikačná služba umožňuje manažérovi prevádzky definovať pravidlá automatického škálovania, ktoré určujú podmienky, za ktorých by mal systém škálovať na viacero inštancií, keď sa zaťaženie zvýši, alebo späť, keď poklesne dopyt. Preeti môže tiež nakonfigurovať preventívne automatické škálovanie tak, aby prebiehalo podľa plánu:

Horizontálne škálovanie aplikačnej služby.

Kľúčovou súčasťou úlohy manažéra IT prevádzky je mať prehľad o tom, ako sa môžu systémy vyvíjať, a zabezpečiť, aby základné podporné štruktúry zvládli budúce rozširovanie a zmeny. Preeti vie, že webové rozhranie API vyvinuté Kianou môže byť v budúcnosti rozšírené a opätovne použité inými systémami VanArsdel. Preeti musí byť schopný riadiť a kontrolovať spôsob, akým vývojári požadujú používanie webového rozhrania API, chrániť ho ako cenný zdroj a monitorovať jeho používanie. Preeti sa preto rozhodla chrániť webové rozhranie API za službou správy rozhrania Azure API.

Správa rozhrania API poskytuje webovému rozhraniu API ďalšiu vrstvu zabezpečenia a umožňuje podrobné sledovanie a kontrolu nad tým, ktorí klienti majú prístup ku ktorým operáciám. Pomocou spravovania rozhrania API môže Preeti spravovať využitie zdrojov a znižovať výkon klientov s nízkou prioritou, aby sa zabezpečilo rýchlejšie vybavenie kritických aplikácií s vyššou prioritou.

Informácie o službách, ktoré poskytuje spravovanie rozhrania API, nájdete v článku O správe rozhrania API.

Vytvorenie služby správy rozhrania API

Preeti vytvorila službu správy rozhrania API prostredníctvom portálu Azure pomocou nasledujúcich krokov:

  1. Prihláste sa na portál Azure a na stránke Domov vyberte + Vytvoriť zdroj.

    Domovská stránka portálu Azure.

  2. V testovom poli Vyhľadať na Marketplace zadajte Správa rozhrania API a potom vyberte Zadať.

  3. Na stránke Správa rozhrania API vyberte Vytvoriť.

    Stránka služby vytvorenia spravovania rozhrania API platformy Azure.

  4. Na stránke Vytvorenie spravovania rozhrania API zadajte nasledujúce hodnoty a potom vyberte Skontrolovať + vytvoriť:

    • Predplatné: Vyberte svoje predplatné
    • Skupina zdrojov: webapi_ rg (toto je rovnaká skupina zdrojov, ktorú ste vytvorili pre službu App Service)
    • Región: Vyberte najbližší región
    • Názov zdroja: Zadajte jedinečný názov služby
    • Názov organizácie: VanArsdel
    • E-mail správcu: itadmin@vanarsdel.com
    • Cenová úroveň: Vývojár (bez SLA)

    Poznámka

    Nepoužívajte cenovú úroveň Vývojár pre výrobný systém.

    Nová stránka služby spravovania rozhrania API.

  5. Na stránke overenia vyberte možnosť Vytvoriť a počkajte, kým sa nevytvorí služba spravovania rozhrania API.

    Poznámka

    Zriadenie služby API Management môže trvať 30 a viac minút; buďte trpezliví.

Publikovanie webového rozhrania API prostredníctvom správy rozhrania API

Po vytvorení služby API Management spoločnosť Preeti zverejnila webové rozhranie API, aby bolo dostupné pre ďalšie služby a aplikácie pomocou nasledujúcich krokov:

  1. Na portáli Azure prejdite do služby spravovania rozhrania API.

  2. Na stránke Služba spravovania rozhrania API na ľavej table pod položkou API vyberte API:

    Stránka služby spravovania rozhrania API. Výber rozhraní API.

  3. Na table Pridať nové rozhranie API vyberte OpenAPI:

    Stránka služby spravovania rozhrania API. Vyberte položku OpenAPI.

  4. V dialógovom okne Vytvoriť zo špecifikácie OpenAPI zadajte nasledujúce hodnoty a potom vyberte Vytvoriť:

    • Špecifikácia rozhrania OpenAPI: https://<webapp name>.azurewebsites.net/swagger/v1/swagger.json, kde <webapp name> je názov aplikačnej služby hosťujúcej vaše webové rozhranie API
    • Zobrazovaný názov: API pre technikov v teréne
    • Názov: field-engineer-api
    • Prípona adresy URL rozhrania API: Nechajte prázdne
    • Základná adresa URL: Použite predvolenú adresu URL

    Vytvorenie rozhrania API zo špecifikácie OpenAPI.

  5. Po vytvorení rozhrania API pre technikov v teréne vyberte kartu Nastavenia pre API, nastavte Adresa URL webovej služby na https://<webapp name>.azurewebsites.net a potom vyberte Uložiť:

    Konfigurácia nastavení rozhrania API.

  6. Na karte Test vyberte Získať api/URI plánovanej činnosti a potom vyberte Poslať:

    Test rozhrania API GetAppointments.

  7. Skontrolujte, či je požiadavka úspešná (návratový kód HTTP je 200 OK) a že vráti výsledok obsahujúci zoznam plánovaných činností v tele odpovede:

    Odpoveď z testovania rozhrania API GetAppointments.

Pripojenie k správe API z aplikácie

Kiana a Júlia teraz môžu spolupracovať na pripojení aplikácie vytvorenej pomocou Power Apps na webové rozhranie API prostredníctvom služby spravovania API.

Prvou úlohou je vytvoriť vlastný konektor, ktorý aplikácia používa na komunikáciu so správou rozhrania API. To zahŕňa export API do prostredia Power Apps použitého na vytvorenie aplikácie, čo Kiana robí nasledovne:

  1. Na portáli Azure prejdite na stránku služby správy rozhrania API, ktoré vytvorila Preeti:

  2. Na ľavej table pod Rozhrania API vyberte Rozhrania API.

  3. Vyberte tlačidlo troch bodiek pre API pre technikov v teréne a potom vyberte Export.

    Export webového rozhrania API.

  4. Na table Export rozhrania API vyberte Power Apps a Power Automate:

    Export webového rozhrania API do Power Apps.

  5. Na table Exportovať rozhranie API do PowerApps vyberte prostredie Power Apps, v ktorom ste vytvorili prototyp aplikácie (Júlia na nasledujúcom obrázku) a potom vyberte Export.

    Export do prostredia Power Apps Júlie.

  6. Po exportovaní rozhrania API vyberte API pre technikov v teréne. Na stránke Nastavenia posuňte zobrazenie nadol do sekcie Predplatné, vymažte Vyžaduje sa predplatné a potom vyberte Uložiť.

    Zrušenie výberu predplatného požadované.

Prototypová aplikácia využívala zošity programu Excel pre zdroje údajov. Teraz, keď je k dispozícii vlastný konektor pre webové rozhranie API, Júlia vykoná nasledujúce kroky na pridanie konektora do aplikácie:

  1. Prihláste sa do služby Power Apps.

  2. Na ľavej table rozbaľte možnosť Údaje a vyberte Vlastné konektory. Vlastný konektor field-engineer-api mal by byť uvedený. Vyberte položku Vytvoriť pripojenie.

    Vytvorenie vlastného konektora.

  3. V dialógovom okne field-engineer-api vyberte Vytvoriť.

    Vytvorenie konektora FieldEngineerAPI.

  4. Po vytvorení pripojenia skontrolujte, či sa zobrazuje v zozname dostupných pripojení.

    Zobrazenie dostupných pripojení.

  5. Na ľavej table vyberte Aplikácie, vyberte VanArsdelApp a potom vyberte Upraviť.

    Úprava aplikácie VanArsdel.

  6. Na ľavej table vyberte kartu Údaje. Vyberte Pridať údaje, stlačte tlačidlo s troma bodkami pre Konektory a potom vyberte Obnoviť.

    Obnovenie zdrojov údajov.

  7. V zozname konektorov vyberte konektor field-engineer-api.

    Zobraziť konektory.

  8. V dialógovom okne field-engineer-api vyberte konektor field-engineer-api.

    Pridanie konektora FieldEngineerAPI.

  9. Na table Údaje skontrolujte, či je konektor FieldEngineerApi uvedený.

    Pridaný konektor FieldEngineerAPI.

Aktualizácia aplikácie na používanie konektora: Správa zásob v teréne

Teraz, keď bolo do aplikácie pridané pripojenie, môže Júlia upraviť obrazovky tak, aby ich mohla používať na nahradenie zošitov programu Excel. To zahŕňa metodické prepracovanie každej obrazovky a zmenu zdroja údajov. Nie sú potrebné žiadne ďalšie zmeny. Maria začne s obrazovkami BrowseParts a PartDetails takto:

  1. Na obrazovke Domov aplikácie vyberte tlačidlo Diely. Vlastnosť akcie OnSelect nastavte na tento vzorec.

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

    Funkcia ClearCollect vytvorí novú kolekciu s názvom partsCollection a naplní ju údajmi, ktoré sú výsledkom volania operácie getboilerparts v spojení FieldEngineerAPI.

    Vytvorenie premennej partsCollection.

    Poznámka

    Je dobrým zvykom načítať údaje do zbierky a odkazovať na ňu zo všetkých obrazoviek, ktoré tieto informácie potrebujú. Tento prístup môže ušetriť rôznym obrazovkám opakované spustenie rovnakého dotazu a načítanie rovnakých údajov.

  2. Vyberte F5 na zobrazenie ukážky aplikácie.

  3. Na obrazovke Domov zvoľte Diely. Táto akcia vytvorí kolekciu partsCollection. Zatvorte okno s ukážkou a vráťte sa na Power Apps Studio.

    Poznámka

    Účelom tohto kroku je umožniť vám vidieť údaje počas úprav obrazovky BrowseParts v nasledujúcich krokoch.

  4. Vyberte ovládací prvok BrowseGallery1 na obrazovke BrowseParts. Vo vzorci pre vlastnosť Položky nahraďte odkaz na zdroj údajov [@Table1] na partsCollection.

    Táto zmena bude mať za následok určité chyby. Je to tak preto, lebo názvy polí v pôvodnom zošite programu Excel používali veľké písmená (Názov, CategoryID a Prehľad), zatiaľ čo vlastnosti vrátené v tele odpovede webového rozhrania API sú pomenované malými písmenami. Zmeňte tieto odkazy tak, aby používali malé písmená. Vzorec by mal vyzerať približne ako takto.

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

    Aktualizácia vzorca pre obrazovku Prehliadať.

  5. Na table Stromová štruktúra vyberte ovládací prvok IconRefresh1. Zmeňte akciu OnSelect na vzorec ClearCollect(partsCollection, FieldEngineerAPI.getapiboilerparts()).

    Poznámka

    Pôvodný vzorec pre túto akciu volá funkciu Obnoviť na opätovné vyplnenie údajov pomocou pripojenia k pôvodnému zdroju údajov. Nemôžete použiť Obnoviť s pripojením, ktoré spúšťa funkciu na načítanie údajov, takže s ním nebude fungovať FieldEngineerApi.getapiboilerparts(). Riešenie v tomto kroku znovu vypĺňa kolekciu partsCollection najnovšími údajmi.

  6. Na table Stromová štruktúra rozbaľte ovládací prvok BrowseGallery1 a vyberte ovládací prvok Body1. Zmeňte vlastnosť Text na ThisItem.overview.

  7. Na table Stromová štruktúra vyberte ovládací prvok Subtitle1. Zmeňte vlastnosť Text na ThisItem.categoryId.

  8. Na table Stromová štruktúra vyberte ovládací prvok Title. Zmeňte vlastnosť Text na ThisItem.name.

  9. Na table Stromová štruktúra vyberte ovládací prvok DetailForm1 na obrazovke PartDetails. Zmeňte vlastnosť DataSource z [@Table1] na partsCollection.

  10. Na table Stromová štruktúra vyberte ovládací prvok Name_DataCard1 v rámci DetailForm1. Zmeňte vlastnosť Predvolené na ThisItem.name.

    Zmena predvoleného nastavenia kartu údajov Názov.

  11. Zmeňte vlastnosť Predvolené ovládacieho prvku CategoryID_DataCard1 na ThisItem.categoryId.

  12. Zmeňte vlastnosť Predvolené ovládacieho prvku Overview_DataCard1 na ThisItem.overview.

  13. Zmeňte vlastnosť Predvolené ovládacieho prvku Price_DataCard1 na ThisItem.price.

  14. Zmeňte vlastnosť Predvolené ovládacieho prvku NumberInStock_DataCard1 na ThisItem.numberInStock.

  15. Zmeňte vlastnosť Predvolené ovládacieho prvku Image_DataCard1 na ThisItem.imageUrl.

  16. Na ľavej table na obrazovke Údaje kliknite pravým tlačidlom myši na dátové pripojenie Table1 a potom vyberte Odstrániť na jeho vymazanie z aplikácie. Toto pripojenie nie je viac vyžadované.

    Odstránenie pripojenia Table1.

  17. Uložte aplikáciu.

    Poznámka

    Aplikáciu môžete rýchlo uložiť bez použitia ponuky Súbor výberom Ctrl + S.

  18. Vyberte F5 na zobrazenie ukážky aplikácie. Obrazovky Prehliadať diely a Podrobnosti dielu by mali fungovať presne ako predtým, s výnimkou toho, že tentokrát načítavajú údaje z databázy SQL Azure InventoryDB prostredníctvom webového rozhrania API, a nie z lokálneho súboru programu Excel.

  19. Zatvorte okno s ukážkou a vráťte sa na Power Apps Studio.

Aktualizácia aplikácie na používanie konektora: Plánovanie v teréne a poznámky

Júlia pokračuje s obrazovkami BrowseAppointments, AppointmentDetails a EditAppointment. Údaje prezentované týmito obrazovkami v súčasnosti pochádzajú z tabuľky Plánované činnosti v inom zošite programu Excel.

  1. Na obrazovke Domov aplikácie nastavte akciu OnVisible na nasledujúci vzorec.

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

    Tento vzorec načíta údaje o plánovaných činnostiach do kolekcie appointmentsCollection. Plánované činnosti sú filtrované, aby sa získali návštevy naplánované na alebo po aktuálnom dátume.

  2. Vyberte ovládací prvok označenia, ktorý zobrazuje čas nasledujúcej plánovanej činnosti. Nastavte vlastnosť Text na Text(First(appointmentsCollection).startDateTime, ShortTime24).

  3. Vyberte ovládací prvok označenia, ktorý zobrazuje dátum nasledujúcej plánovanej činnosti. Nastavte vlastnosť Text na Text(First(appointmentsCollection).startDateTime, LongDate).

  4. Vyberte ovládací prvok označenia, ktorý zobrazuje meno zákazníka nasledujúcej plánovanej činnosti. Nastavte vlastnosť Text na First(appointmentsCollection).customer.name.

  5. Vyberte F5 na zobrazenie ukážky aplikácie. Na obrazovke Domov zvoľte Plánované činnosti. Táto akcia vytvorí kolekciu appointmentsCollection. Zatvorte okno s ukážkou a vráťte sa na Power Apps Studio.

  6. Na table Stromová štruktúra vyberte ovládací prvok BrowseAppointmentsGallery na obrazovke BrowseAppointments. Zmeňte vzorec vo vlastnosti Položky na nasledujúci.

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

    Tento vzorec filtruje údaje zobrazené na obrazovke podľa mena zákazníka, čo umožňuje používateľovi zadať meno zákazníka. Termíny sa zobrazujú v poradí podľa dátumu a času.

  7. Na table Stromová štruktúra rozbaľte ovládací prvok BrowseAppointmentsGallery a vyberte ovládací prvok Title1_1. Zmeňte vlastnosť Text takto.

    Text(ThisItem.startDateTime, LongDate)
    

    Tento vzorec zobrazuje dátumovú časť poľa startDateTime pre plánovanú činnosť.

  8. Na table Stromová štruktúra rozbaľte ovládací prvok BrowseAppointmentsGallery a vyberte ovládací prvok Subtitle1_1. Zmeňte vlastnosť Text takto.

    Text(ThisItem.startDateTime, ShortTime24)
    

Tento vzorec zobrazuje časový prvok poľa startDateTime.

  1. Na table Stromová štruktúra rozbaľte ovládací prvok BrowseAppointmentsGallery a vyberte ovládací prvok Body1_1. Zmeňte vlastnosť Text takto.

    ThisItem.customer.name
    
  2. Na table Stromová štruktúra vyberte ovládací prvok IconRefresh1_1 na obrazovke BrowseAppointments. Akciu OnSelect nastavte na tento vzorec.

    ClearCollect(appointmentsCollection, Sort(Filter(FieldEngineerAPI.getapiappointments(), DateDiff(Today(), startDateTime) >= 0), startDateTime));
    
  3. Na table Stromová štruktúra rozbaľte obrazovku AppointmentDetails a vyberte ovládací prvok DetailForm1_1. Nastavte vlastnosť DataSource na hodnotu appointmentsCollection.

  4. Na table Stromová štruktúra vyberte ovládací prvok IconEdit1. Upravte vzorec vo vlastnosti DisplayMode na otestovanie kolekcie appoinmentsCollection.

    If(DataSourceInfo(**appointmentsCollection**, DataSourceInfo.EditPermission), DisplayMode.Edit, DisplayMode.Disabled)
    
  5. Na table Stromová štruktúra rozbaľte obrazovku DetailForm1_1 a vyberte ovládací prvok Customer Name_DataCard1. Zmeňte vlastnosť Predvolené na ThisItem.customer.name.

  6. Zmeňte vlastnosti Predvolené zostávajúcich dátových kariet nasledovne:

    • Adresa zákazníka_DataCard1: ThisItem.customer.address
    • Číslo kontaktu_DataCard1: ThisItem.customer.contactNumber
    • Podrobnosti o probléme_DataCard1: ThisItem.problemDetails
    • Stav_DataCard1: ThisItem.appointmentStatus.statusName
    • Poznámky_DataCard1: ThisItem.notes
    • Obrázok_DataCard1_1: ThisItem.imageUrl
  7. Na table Stromová štruktúra rozbaľte obrazovku EditAppointment a vyberte ovládací prvok EditForm1. Nastavte vlastnosť DataSource na hodnotu appointmentsCollection.

  8. Na table Stromová štruktúra rozbaľte ovládací prvok EditForm1 a vyberte ovládací prvok Customer Name_DataCard3. Zmeňte vlastnosť Predvolené na ThisItem.customer.name.

  9. Zmeňte vlastnosti Predvolené zostávajúcich dátových kariet nasledovne:

  • Číslo kontaktu_DataCard2: ThisItem.customer.contactNumber; dodatočne zmeňte vlastnosť MaxLength na 20
  • Podrobnosti o probléme_DataCard2: ThisItem.problemDetails
  • Stav_DataCard5: ThisItem.appointmentStatus.statusName
  • Poznámky_DataCard3: ThisItem.notes
  • Obrázok_DataCard2: ThisItem.imageUrl
  1. Na table Stromová štruktúra rozbaľte ovládací prvok Problem Details_Card2. Premenujte pole DataCardValueX (X bude číslo) pod týmto ovládacím prvkom na ProblemDetailsValue. Tento postup opakujte pre ovládacie prvky DataCardValueX na nasledujúcich údajových kartách:

    • Stav_DataCard5: StatusValue
    • Poznámky_DataCard3: NotesValue

    Poznámka

    Ovládaciemu prvku Obrázok sa budeme venovať v nasledujúcej kapitole.

  2. Vyberte ProblemDetailsValue a nastavte vlastnosť MaxLength na 100.

  3. Na table Stromová štruktúra vyberte ovládací prvok IconAccept1 a vyberte obrazovku EditAppointment. Vlastnosť akcie OnSelect nastavte na tento vzorec.

    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);
    

    Tento vzorec volá operáciu PUT pre ovládač plánovaných činností vo webovom rozhraní API. Ako prvý parameter odovzdá ID plánovanej činnosti pre aktuálnu plánovanú činnosť, za čím nasledujú podrobnosti, ktoré mohol používateľ na obrazovke upraviť. Podrobnosti sa odovzdávajú ako objekt JSON. Vyhlásenia Odstrániť, Nastaviť a Zhromažďovať aktualizujú kolekciu appointmentsCollection o údaje uložené v databáze.

    Poznámka

    Nepoužívajte funkciu ClearCollect na odstránenie a obnovenie celej kolekcie v situáciách, ako je táto, pretože by to bolo zbytočné, kebyže — napríklad — sa zmenil iba jeden záznam.

  4. Na table Stromová štruktúra vyberte ovládací prvok IconAccept1 a vyberte obrazovku EditAppointment. Vlastnosť akcie OnSelect nastavte takto.

    ResetForm(EditForm1);
    
    Navigate(AppointmentDetails, ScreenTransition.None);
    
  5. Na ľavej table na obrazovke Údaje kliknite pravým tlačidlom myši na dátové pripojenie Plánované činnosti a potom vyberte Odstrániť na jeho vymazanie z aplikácie.

  6. Uložte aplikáciu.

  7. Vyberte F5 na zobrazenie ukážky aplikácie. Z obrazovky Domov choďte na obrazovku Plánované činnosti na obrazovke, vyberte a upravte plánovanú činnosť a potom zmeny uložte. Skontrolujte, či bol bola plánovaná činnosť aktualizovaná.

  8. Zatvorte okno s ukážkou a vráťte sa na Power Apps Studio.

Vytvorenie služby Azure Cognitive Search pre vedomostnú databázu v teréne

Obrazovka Vedomostná databáza v aplikácii nie je momentálne pripojená k žiadnemu zdroju údajov. Webové API obsahuje operácie na dotazovanie a aktualizáciu tabuliek Tipy, BoilerParts a Inžinieri v databáze KnowledgeDB. Účelom obrazovky Dotaz v aplikácii je podporiť vyhľadávanie vo všetkých týchto tabuľkách. Objem údajov v týchto tabuľkách sa pravdepodobne rýchlo zvýši, preto sa Júlia, Kiana a Preeti rozhodnú nasadiť na podporu tejto funkcie Azure Cognitive Search. Aplikácia môže odosielať dotazy a prijímať výsledky z Azure Cognitive Search prostredníctvom vlastného konektora.

Azure Cognitive Search funguje najlepšie, ak sú dáta, ktoré sa majú prehľadať, obsiahnuté v jednej databázovej entite. Kiana vytvára zobrazenie v databáze KnowledgeDB, ktoré poskytuje jednotný pohľad na tabuľky Tipy, BoilerParts a Inžinieri:

  1. Na portáli Azure prejdite na stránku pre SQL databáza KnowledgeDB.

  2. Na ľavej table vyberte Editor dotazov a prihláste sa do databázy ako sqladmin pomocou hesla Pa55w.rd.

    Prihlásenie do databázy Azure SQL.

  3. V okne dotazov zadajte nasledujúci príkaz a potom vyberte Spustiť.

    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
    

    Vytvorenie zobrazenia „Vedomosti“

    Overte, či zobrazenie Vedomosti bolo úspešne vytvorené.

  4. Na ľavej table vyberte položku Reťazce pripojení. Poznačte si reťazec pripojenia ADO.NET; budete to potrebovať pri konfigurácii Azure Cognitive Search.

    Reťazec pripojenia ADO.NET pre databázu KnowledgeDB.

Preeti v spolupráci s Kianou konfiguruje novú inštanciu služby Azure Cognitive Search na vykonávanie vyhľadávania v riadkoch v zobrazení Vedomosti nasledujúcim spôsobom:

  1. Na stránke Domov na portáli Azure vyberte + Vytvoriť zdroj, zadajte Azure Cognitive Search, vyberte Zadať a potom vyberte Vytvoriť.

    Vytvorenie služby Azure Cognitive Search.

  2. Na stránke Nová služba vyhľadávania zadajte nasledujúce nastavenia a potom vyberte Skontrolovať + vytvoriť:

    • Predplatné: Vyberte svoje predplatné Azure
    • Skupina zdrojov: webapi_rg
    • Názov služby: Zadajte jedinečný názov služby
    • Názov umiestnenia: Vyberte svoj najbližší región
    • Cenová úroveň: Zadarmo
  3. Na stránke overenia vyberte možnosť Vytvoriť a počkajte, kým sa nezriadi služba.

  4. Prejdite na stránku novej vyhľadávacej služby a vyberte položku Prehľad, poznačte si URL (budete to potrebovať neskôr, keď vytvoríte vlastný konektor pre Power Apps) a potom vyberte Import údajov.

    Stránka prehľadu vyhľadávacej služby.

  5. Na stránke Import údajov v rozbaľovacom zozname Zdroj údajov vyberte Databáza Azure SQL.

    Výber databázy Azure SQL.

  6. Na stránke Pripojte sa k svojim údajom zadajte nasledujúce nastavenia:

    • Zdroj údajov: Databáza Azure SQL
    • Názov zdroja údajov: knowledgebase
    • Pripojovací reťazec: Zadajte pripojovací reťazec k databáze Azure SQL pre databázu KnowledgDB, ktorú ste si predtým zaznamenali; v tomto reťazci nezabudnite nastaviť heslo na Pa55w.rd
    • Opustite polia ID používateľa a Heslo pri ich predvolených hodnotách; tieto položky sa načítajú z pripojovacieho reťazca
  7. Zvoľte položku Testovať pripojenie. Zaistite, aby bol test úspešný, vyberte [Znalosti] v rozbaľovacom zozname Tabuľka/Zobrazenie a potom vyberte Ďalej: Pridajte kognitívne schopnosti (voliteľné).

    Zadanie zobrazenia vyhľadávania.

  8. Na stránke Pridajte kognitívne schopnosti (voliteľné) vyberte Prejsť na: Prispôsobenie cieľového indexu.

  9. Na stránke Prispôsobte cieľový index vyberte Získateľné pre všetky stĺpce a Vyhľadateľné pre Predmet, Telo, Názov a Prehľad. Vyberte Ďalej: Vytvorte indexovací server.

    Prispôsobenie cieľového indexu.

  10. Na stránke Vytvorte indexovací server zmeňte Názov indexovacieho servera na knowledgebase-indexer. Pre Plán vyberte Každú hodinu nastavte Stĺpec s vysokým vodoznakom na Id a potom vyberte Odoslať:

    Vytvorenie indexovacieho servera.

  11. Ak chcete otestovať indexovací server, na stránke Prehľad pre vyhľadávaciu službu vyberte Prieskumník vyhľadávania:

    Výber Prieskumníka vyhľadávania.

  12. V poli reťazec dotazu zadajte slovo, ktoré chcete vyhľadať vo vedomostnej databáze, a potom vyberte Vyhľadávanie. Vyhľadávacia služba by mala vygenerovať zoznam dokumentov so zhodou v poliach Predmet, Telo, Názov alebo Prehľad a zobrazte ich na table Výsledky. Poznačte si URL žiadosti a vzorové Výsledky; tieto položky budete neskôr potrebovať ako príklad žiadosti a odpovede pri nastavovaní vlastného konektora Power Apps.

    Výsledky dotazu vyhľadávania.

Vytvorenie vlastného konektora pre službu Azure Cognitive Search

Kiana teraz môže vytvoriť vlastný konektor, ktorý Power Apps používa na odosielanie požiadaviek na vyhľadávanie do vyhľadávacej služby. Kiana to robí pomocou Power Apps Studio takto:

  1. Prihláste sa do služby Power Apps.

  2. Na ľavej table rozbaľte možnosť Údaje a vyberte Vlastné konektory. Na pravej table vyberte + Nový vlastný konektor a potom vyberte Vytvorenie od začiatku:

    Nový vlastný konektor.

  3. V dialógovom okne Vytvorenie od začiatku nastavte nový názov konektora na VanArsdelKBConnector a potom vyberte Pokračovať:

    Vytvorenie konektora vedomostnej databázy.

  4. Na stránke Všeobecné informácie zadajte popis a nastavte Schéma na HTTPS. V poli Hostitelia zadajte adresu URL svojej vyhľadávacej služby (túto adresu URL ste si predtým poznačili), ale bez predpony https:// a potom vyberte Zabezpečenie.

    Konektor vyhľadávacej služby, stránka Všeobecné.

  5. Na stránke Zabezpečenie v rozbaľovacom okne Overenie vyberte Kľúč API. V poli Označenie parametra zadajte api-key. V poli Názov parametra zadajte api-key. Vyberte Definícia.

    Konektor vyhľadávacej služby, stránka Zabezpečenie.

  6. Na stránke Definícia kliknite na položku Nová akcia. V poli Súhrn zadajte Dotaz. V poli Popis zadajte Dotaz na vedomostnú databázu. V poli ID operácie zadajte Dotaz. V poli Žiadosť vyberte + Import zo vzorky.

    Konektor vyhľadávacej služby, stránka Definícia.

  7. V dialógovom okne Import zo vzorky zadajte nasledujúce hodnoty a potom vyberte Import:

    • Príkaz: GET
    • URL: Zadajte vzorovú adresu URL žiadosti, ktorú ste si poznačili pri predchádzajúcom testovaní vyhľadávacej služby v prieskumníku vyhľadávania
    • Hlavičky: Content-type

    Definícia importu zo vzorovej žiadosti.

  8. Späť na stránke Definícia posuňte zobrazenie nadol do sekcie Dotaz, kliknite na tlačidlo troch bodiek vedľa vyhľadávania a potom vyberte Upraviť.

    Úprava definície vyhľadávacej požiadavky.

  9. Na obrazovke úprav v časti Parametre v poli Predvolená hodnota zadajte hviezdičku (*). Ostatné polia nechajte na ich predvolených hodnotách a potom vyberte Späť.

    Nastavenie predvolenej hodnoty vyhľadávania.

  10. Na stránke Definícia v sekcii Dotaz vyberte tlačidlo troch bodiek vedľa api-version a potom vyberte Upraviť.

    Úprava verzie API.

  11. Na obrazovke úprav v sekcii Parametre v poli Predvolená hodnota zadajte 2020-06-30-Preview (toto je verzia spojená s aktuálnou verziou Azure Cognitive Search; verziu môžete vidieť v adrese URL žiadosti, ktorú ste si predtým poznamenali). Nastavte Vyžaduje sa na Áno a nastavte Viditeľnosť na interné. Ostatné polia nechajte na ich predvolených hodnotách a potom vyberte Späť.

    Nastavte hodnoty API pre parametre vyhľadávania.

  12. Na stránke Definícia posuňte zobrazenie nadol do sekcie Odozva a vyberte + Pridajte predvolenú odpoveď.

    Pridanie predvolenej definície odpovede.]

  13. V dialógovom okne Import zo vzorky v poli Hlavičky zadajte text Content-type. V poli Telo zadajte vzorové výsledky, ktoré ste zaznamenali pri testovaní vyhľadávacej služby, a potom vyberte Import.

    Importujte správu s odpoveďou zo vzorky.

  14. Na stránke Definícia vyberte predvolenú odpoveď.

    Výber predvolenej odpovede.

  15. V poli Popis odpovede Content-type zadajte application/json a potom vyberte Späť.

    Nastavenie obsahu hlavičky správy s odpoveďou.

    Poznámka

    V sekcii Telo na tejto stránke by sa mali zobraziť polia odpovede, ako napr. Telo, Id, Názov, Prehľad a Predmet, ak bola úspešne analyzovaná.

  16. Vyberte položku Vytvoriť konektor.

    Vytvorenie konektora Azure Cognitive Search.

Konektor by mal byť vytvorený bez hlásenia akýchkoľvek chýb alebo varovaní.

Aktualizácia aplikácie na používanie služby Azure Cognitive Search: Vedomostná databáza v teréne

Júlia teraz môže v aplikácii používať vlastný konektor. Najprv je však potrebný kľúč, ktorý Marii udelí privilégiá potrebné na pripojenie k službe Azure Cognitive Search. Preeti získava kľúč zo stránky Kľúče pre službu na portáli Azure a dáva ju Júlii.

Vyhľadanie kľúča služby na portáli Azure.

Júlia upravuje aplikáciu v Power Apps Studio a plní tieto úlohy:

  1. Otvorte aplikáciu VanArsdelApp na úpravu.

  2. V ponuke Zobrazenie zvoľte Zdroje údajov a potom vyberte Pridať údaje.

    Pridanie zdroja údajov do aplikácie.

  3. V poli Vyhľadávanie pod Vyberte zdroj údajov zadajte Van. Mal vypísať konektor VanArdelKBConnector.

    Vyhľadanie konektora Azure Cognitive Search.

  4. Vyberte konektor VanArdelKBConnector. Na table VanArdelKBConnector zadajte kľúč, ktorý poskytla Preeti vyhľadávacej službe, a potom vyberte Pripojte sa.

    Zadajte kľúč API.

  5. V ponuke Súbor uložte a zatvorte aplikáciu a potom ju znova otvorte. Po opätovnom otvorení aplikácie sa vám môže zobraziť výzva na autorizáciu použitia vlastného konektora.

    Poznámka

    Tento krok je nevyhnutný na povolenie vlastného konektora.

  6. Na table Stromová štruktúra rozbaľte obrazovku Knowledgebase a vyberte ovládací prvok TextSearchBox2. Zadajte nasledujúci vzorec pre akciu OnChange.

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

    Tento vzorec volá operáciu Dotaz vlastného konektora vyhľadáva položiek, ktoré sa zhodujú s výrazom, ktorý používateľ zadá do vyhľadávacieho poľa. Výsledky sú uložené v kolekcii s názvom azResult.

  7. Na table Stromová štruktúra na obrazovke Knowledgebase vyberte ovládací prvok BrowseGallery2. Nastavte vlastnosť Položky na azResult.

  8. Rozbaľte ovládací prvok BrowseGallery2 a odstráňte ovládací prvok Image4.

  9. Vyberte ovládací prvok Title2. Nastavte nasledujúce vlastnosti:

    • Text: ThisItem.Subject
    • X: 24
    • Šírka: Parent.TemplateWidth - 104
  10. Vyberte ovládací prvok Subtitle2. Nastavte vlastnosť Text na ThisItem.Body.

  11. Vyberte F5 na zobrazenie ukážky aplikácie. Na obrazovke Vedomostná databáza zadajte hľadaný výraz a potom zvoľte Zadať. Mali by sa zobraziť zodpovedajúce články z vedomostnej databázy.

    Dotaz na vedomostnú databázu v aplikácii.

    Poznámka

    Obrazovka podrobností ešte nebola vytvorená, takže výber ikony > vedľa článku nefunguje.

  12. Zatvorte okno s ukážkou a vráťte sa na Power Apps Studio.

  13. Na table Stromová štruktúra kliknite pravým tlačidlom myši na obrazovku PartDetails a vyberte Duplicitná obrazovka. Touto akciou sa do aplikácie pridá ďalšia obrazovka s názvom PartDetails_1.

    Duplikácia obrazovky PartDetails.

  14. Na table Stromová štruktúra premenujte obrazovku PartDetails_1 na KnowledgebaseDetails.

    Vyberte ovládací prvok LblAppNameX na obrazovke; nastavte vlastnosť Text na "Podrobnosti o článku" (vrátane úvodzoviek).

  15. Na table Stromová štruktúra vyberte ovládací prvok DetailFormX na obrazovke. Nastavte nasledujúce vlastnosti:

    • DataSource: azResult
    • Položka: Prehliadať galériu2.Vybraté

    Poznámka

    BrowseGallery2 je galéria prehliadania na obrazovke Vedomostná databáza. Vo vašej aplikácii môže mať táto galéria iný názov.

  16. Na table Stromová štruktúra rozbaľte formulár DetailFormX, potom zmeňte názvy nasledujúcich ovládacích prvkov údajovej karty:

    • Názov_DataCard1_1: Name_DataCard
    • CategoryID_DataCard1_1: Subject_DataCard
    • Prehľad_DataCard1_1: Overview_DataCard
    • Cena_DataCard1_1: Body_DataCard
  17. Odstráňte ovládacie prvky NumberInStock_DataCard1_1 a Image_DataCard1_1.

  18. Vyberte ovládací prvok Name_DataCard. Nastavte vlastnosť Predvolené na ThisItem.Name.

  19. Vyberte ovládací prvok Subject_DataCard. Nastavte nasledujúce vlastnosti:

    • DataField: "Predmet"
    • DisplayName: "Predmet"
    • Predvolené: ThisItem.Subject
  20. Vyberte ovládací prvok Overview_DataCard. Nastavte vlastnosť Predvolené na ThisItem.Overview.

  21. Vyberte ovládací prvok Body_DataCard. Nastavte nasledujúce vlastnosti:

    • DataField: "Telo"
    • DisplayName: "Telo"
    • Predvolené: ThisItem.Body
  22. Vyberte ovládací prvok DataCardValueX v ovládacom prvku Body_DataCard. Nastavte vlastnosť Text na Parent.Default.

  23. Zmeňte veľkosť všetkých ovládacích prvkov dátových kariet tak, aby boli rozložené po obrazovke.

    Obrazovka ArticleDetails.

  24. Vyberte šípku späť v hlavičke obrazovky. Zmeňte vlastnosť akcie OnSelect na Navigate(Knowledgebase, ScreenTransition.None).

  25. Na table Stromová štruktúra vyberte obrazovku Knowledgebase a potom ovládací prvok BrowseGalleryX. Zmeňte vlastnosť akcie OnSelect na Navigate(KnowledgebaseDetails, ScreenTransition.None). Táto akcia zobrazí obrazovku s podrobnosťami článku vedomostnej databázy, keď si používateľ vyberie ikonu > pre záznam na obrazovke prehliadania.

  26. Uložte aplikáciu.

  27. Vyberte F5 na zobrazenie ukážky aplikácie. Na obrazovke Vedomostná databáza zadajte hľadaný výraz a potom zvoľte Zadať. Vyberte článok a overte, či sú zobrazené jeho podrobnosti. Overte, či ikona Späť vráti používateľa na obrazovku prehliadania.

  28. Zatvorte okno s ukážkou a vráťte sa na Power Apps Studio.

Júlia, Kiana a Preeti do aplikácie úspešne začlenili webové rozhranie API a Azure Cognitive Search.