Capítulo 6: Uso da API web na aplicación

María e Kiana están preparadas para combinar a aplicación coa API web. Non obstante, antes de continuar deciden consultar con Preeti, a xestora de operacións de TI.

Nocións sobre os requisitos de xestión de operacións de TI para a API web

Preeti está preocupada porque a aplicación e a API web deben ser seguras porque proporcionan acceso a datos confidenciais almacenados nas distintas bases de datos. Quere garantías de que poderá incluír autenticación e autorización para evitar un acceso inxustificado á información. Preeti tamén é consciente de que a compañía está en rápida expansión e é probable que o volume de datos implicados na xestión de clientes, citas, pezas e a base de coñecemento aumente exponencialmente a curto prazo. En consecuencia, ela quere que a solución sexa escalable.

Kiana explica a Preeti que a API web está actualmente implementada con Azure App Service. Este servizo admite unha serie de provedores de autenticación, que Preeti pode configurar mediante o portal de Azure. Preeti está especialmente interesada en Azure Active Directory porque VanArsdel está a procurar lanzar esta forma de autenticación a moitos dos seus outros sistemas corporativos nun futuro próximo.

Configuración de autenticación do servizo da aplicación.

O servizo da aplicación tamén ofrece escalabilidade horizontal e vertical. Se é necesario, Preeti pode escalar verticalmente os recursos dispoñibles para a API web actualizando o plan de servizo da aplicación para a aplicación web:

Escala vertical do servizo da aplicación.

Tamén pode arranxar a escala horizontal do sistema configurando a escala automática. O servizo da aplicación permite que un xestor de operacións defina regras de escala automática que determinan as condicións nas que o sistema debería escalarse en máis instancias cando a carga aumenta ou volve a entrar a medida que baixa a demanda. Tamén pode configurar o escalado automático preventivo para que se produza segundo unha programación:

Escala horizontal do servizo da aplicación.

Unha parte fundamental do papel dun xestor de operacións de TI é ter ollo de como poden evolucionar os sistemas e asegurarse de que as estruturas de soporte subxacentes xestionarán a expansión e os cambios futuros. Preeti sabe que a API web desenvolvida por Kiana podería ser ampliada e reutilizada por outros sistemas de VanArsdel no futuro. Debe ser capaz de xestionar e controlar a forma en que os programadores solicitan o uso da API web, protexela como un recurso valioso e supervisar o seu uso. Polo tanto, Preeti decide protexer a API web detrás do servizo de xestión da API de Azure.

A xestión da API proporciona unha capa adicional de seguridade a unha API web, ademais de permitir un control e supervisión detallados de que clientes poden acceder a que operacións. Usando a xestión da API, Preeti pode xestionar a utilización de recursos e limitar o rendemento dos clientes de baixa prioridade para garantir que as aplicacións críticas de maior prioridade se atenden máis rapidamente.

Para obter información sobre os servizos que ofrece a xestión da API, vaia a Acerca da xestión da API.

Creación dun servizo de xestión da API

Preeti creou o servizo de xestión da API a través do portal de Azure, seguindo os seguintes pasos:

  1. Inicie sesión no portal de Azure e na páxina Inicio, seleccione Crear un recurso.

    Páxina de inicio do portal Azure.

  2. Na caixa de texto Buscar no Marketplace, insira Xestión da API e, a continuación, seleccione Intro.

  3. Na páxina Xestión da API, seleccione Crear.

    Páxina do servizo de Azure de creación de xestión da API.

  4. Na páxina Crear xestión da API, introduza os seguintes valores e logo seleccione Revisar + crear:

    • Subscrición: Seleccione a súa subscrición
    • Grupo de recursos: webapi_rg (este é o mesmo grupo de recursos que creou para o servizo da aplicación)
    • Rexión: seleccione a rexión máis próxima
    • Nome do recurso: Introduza un nome único para o servizo
    • Nome de organización: VanArsdel
    • Correo electrónico do administrador: itadmin@vanarsdel.com
    • Nivel de prezos: Programador (sen SLA)

    Nota

    Non empregue o nivel de prezos de Programador para un sistema de produción.

    Páxina de servizo de xestión da API novo.

  5. Na páxina de validación, seleccione Crear e agarde mentres se crea o servizo de xestión da API.

    Nota

    O servizo de xestión da API pode tardar 30 minutos ou máis en fornecerse; teña paciencia.

Publicación da API web a través da xestión da API

Despois de crear o servizo de xestión da API, Preeti publicou a API web para facela accesible a outros servizos e aplicacións. Usou os pasos seguintes:

  1. No portal de Azure, vaia ao servizo de xestión da API.

  2. Na páxina Servizo de xestión da API, no panel esquerdo baixo API, seleccione API:

    Páxina do servizo de xestión da API. Seleccionar API.

  3. No Engade unha nova API panel, seleccione OpenAPI:

    Páxina do servizo de xestión da API. Seleccione OpenAPI.

  4. No Crear dende OpenAPI especificación diálogo, introduza os seguintes valores e, a continuación, seleccione Crear:

    • OpenAPI especificación: https://<webapp name> .azurewebsites.net/swagger/v1/swagger.json, onde <webapp name> é o nome do servizo de aplicacións que aloxa a súa API web
    • Nome para mostrar: API do enxeñeiro de campo
    • Nome: field-engineer-api
    • Sufixo do URL da API: déixeo baleiro
    • URL base: Use o URL predefinido

    Crear API desde OpenAPI especificación.

  5. Cando se cree a API de enxeñeiro de campo, seleccione o separador Configuración da API, configure o URL do servizo web en https://<webapp name>.azurewebsites.net e, a continuación, seleccione Gardar:

    Definir a configuración da API.

  6. No separador Proba, seleccione GET api/Appointments URI e, a continuación, seleccione Enviar:

    API de proba GetAppointments.

  7. Verifique que a solicitude é correcta (o código de devolución HTTP é 200 OK) e que devolve un resultado que contén unha lista de citas no corpo da resposta:

    Resposta da proba da API GetAppointments.

Conexión á xestión da API desde a aplicación

Kiana e Maria agora poden traballar xuntas para conectar a aplicación construída usando Power Apps á API web a través do servizo de xestión da API.

A primeira tarefa é crear un conector personalizado que a aplicación use para comunicarse coa xestión da API. Isto implica exportar a API ao ambiente de Power Apps usado para crear a aplicación, que Kiana fai do seguinte xeito:

  1. No portal de Azure, vaia á páxina do servizo de xestión da API que creou Preeti.

  2. No panel esquerdo baixo API, seleccione API.

  3. Seleccione o botón de puntos suspensivos da API de enxeñeiro de campo e continuación, seleccione Exportar.

    Exportar a API web.

  4. No panel Exportar API, seleccione Power Apps e Power Automate:

    Exportar a API web a Power Apps.

  5. No panel Exportar API a Power Apps, seleccione o ambiente de PowerApps no que creou a aplicación prototipo (María na seguinte imaxe) e logo seleccione Exportar.

    Exportar ao ambiente de Power Apps de María.

  6. Despois de exportar a API, seleccione a API de enxeñeiro de campo. Na páxina Configuración, desprácese ata a sección Subscricións, borre Requírese subscrición e, a continuación, seleccione Gardar.

    Desmarcar subscrición obrigatoria.

A aplicación prototipo empregou libros de traballo de Excel para as fontes de datos. Agora que o conector personalizado da API web está dispoñible, María realiza os seguintes pasos para engadir o conector á aplicación:

  1. Inicie sesión en Power Apps.

  2. No panel da esquerda, expanda Datos e selecciona Conectores personalizados. O conector personalizado field-engineer-api debería figurar. Seleccione Crear conexión.

    Crear un novo conector personalizado.

  3. No diálogo field-engineer-api, seleccione Crear.

    Crear conector FieldEngineerAPI.

  4. Cando se cree a conexión, verifique que aparece na lista de conexións dispoñibles.

    Mostrar conexións dispoñibles.

  5. No panel esquerdo, seleccione Aplicacións, seleccione VanArsdelApp e, a continuación, seleccione Editar.

    Editar a aplicación VanArsdel.

  6. No panel esquerdo, seleccione o separador Datos. Seleccione Engadir datos, seleccione o botón de puntos suspensivos de Conectores e, a continuación, seleccione Actualizar.

    Actualizar orixes de datos.

  7. Na lista de conectores, seleccione o conector field-engineer-api.

    Ver conectores.

  8. No diálogo field-engineer-api seleccione o conetor field-engineer-api.

    Engadir conexión FieldEngineerAPI.

  9. No panel Datos, verifique que o conector FieldEngineerApi está listado.

    Conexión FieldEngineerAPI engadida.

Actualización da aplicación para usar o conector: xestión de inventario de campo

Agora que se engadiu a conexión á aplicación, María pode modificar as pantallas para usala para substituír os libros de Excel. Isto implica traballar metodicamente en cada pantalla e cambiar a orixe de datos. Non deberían ser necesarios outros cambios. Ela comeza coas pantallas BrowseParts e PartDetails, do seguinte xeito:

  1. Na pantalla Inicio da aplicación, seleccione o botón Pezas. Configure a propiedade de acción OnSelect na seguinte fórmula.

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

    A función ClearCollect crea unha nova colección chamada partsCollection e énchea cos datos que resultan de chamar a operación getboilerparts na conexión FieldEngineerAPI.

    Crear a variable partsCollection.

    Nota

    É unha boa práctica recuperar os datos nunha colección e facer referencia a esa colección desde calquera pantalla que precise a información. Esta visión pode evitar que diferentes pantallas executen repetidamente a mesma consulta e obteñan os mesmos datos.

  2. Seleccione F5 para previsualizar a aplicación.

  3. Na pantalla de Inicio, seleccione Pezas. Esta acción creará a colección partsCollection. Peche a xanela de vista previa e volva a Power Apps Studio.

    Nota

    O propósito deste paso é permitirlle ver os datos mentres edita a pantalla BrowseParts nos seguintes pasos.

  4. Seleccione o control BrowseGallery1 na pantalla BrowseParts. Na fórmula da propiedade Elementos, substitúa a referencia á orixe de datos [@Table1] por partsCollection.

    Este cambio producirá algúns erros. Isto ocorre porque os nomes de campos do libro de traballo orixinal de Excel usaban maiúsculas (Nome, ID de categoría e Visión xeral), mentres que as propiedades devoltas no corpo da resposta da API web denomínanse en minúsculas. Cambie estas referencias para usar minúsculas. A fórmula debería parecerse ao seguinte.

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

    Actualizar fórmula para a pantalla Examinar.

  5. No panel Vista en árbore, seleccione o control IconRefresh1. Cambie a acción OnSelect á fórmula ClearCollect(partsCollection, FieldEngineerAPI.getapiboilerparts()).

    Nota

    A fórmula orixinal desta acción chama a función Actualizar para volver encher os datos usando a conexión coa orixe de datos orixinal. Non pode usar Actualizar cunha conexión que executa unha función para recuperar os datos, polo que non funcionará con FieldEngineerApi.getapiboilerparts(). A solución neste paso volve enchar a colección partsCollection cos últimos datos.

  6. No panel Vista en árbore, expanda o control BrowseGallery1 e seleccione o control Body1. Cambie a propiedade de Texto a ThisItem.overview.

  7. Seleccione o control Subtitle1 no panel Vista en árbore. Cambie a propiedade de Texto a ThisItem.categoryId.

  8. Seleccione o control Mosaico no panel Vista en árbore. Cambie a propiedade de Texto a ThisItem.name.

  9. No panel Vista en árbore, seleccionar o control DetailForm1 na pantalla PartDetails. Cambie a propiedade DataSource de [@Table1] a partsCollection.

  10. No panel de Vista en árbore, seleccione o control Name_DataCard1 en DetailForm1. Cambie a propiedade Valor predefinido a ThisItem.name.

    Cambiar valor predeterminado para a tarxeta de datos de Nome.

  11. Cambie a propiedade valor predeterminado do control CategoryID_DataCard1 a ThisItem.categoryId.

  12. Cambie a propiedade valor predeterminado do control Overview_DataCard1 a ThisItem.overview.

  13. Cambie a propiedade valor predeterminado do control Price_DataCard1 a ThisItem.price.

  14. Cambie a propiedade valor predeterminado do control NumberInStock_DataCard1 a ThisItem.numberInStock.

  15. Cambie a propiedade valor predeterminado do control Image_DataCard1 a ThisItem.imageUrl.

  16. No panel esquerdo do separador Datos, faga clic co botón dereito do rato na conexión de datos Table1 e logo seleccione Quitar para eliminalo da aplicación. Esta conexión xa non é necesaria.

    Eliminar a conexión Table1.

  17. Gardar a aplicación

    Nota

    Pode gardar a aplicación rapidamente sen usar o menú Ficheiro seleccionando Ctrl + S.

  18. Seleccione F5 para previsualizar a aplicación. As pantallas Buscar pezas e Detalles da peza deberían funcionar exactamente como antes, excepto que esta vez que están recuperando datos da base de datos SQL de Azure InventoryDB a través da API web, en lugar dun ficheiro local de Excel.

  19. Peche a xanela de vista previa e volva a Power Apps Studio.

Actualización da aplicación para usar o conector: notas e programación de campos

María continúa coas pantallas BrowseAppointments, AppointmentDetails e EditAppointment. Os datos presentados por estas pantallas orixínanse actualmente na táboa Citas noutro libro de Excel.

  1. Na pantalla de Inicio da aplicación, configure a acción OnVisible coa seguinte fórmula.

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

    Esta fórmula recupera os datos das citas na colección appointmentsCollection. As citas fíltranse para recuperar as visitas programadas na data actual ou posteriormente.

  2. Seleccione o control de etiqueta que mostra a hora da próxima cita. Configure a propiedade de Texto en Text(First(appointmentsCollection).startDateTime, ShortTime24).

  3. Seleccione o control de etiqueta que mostra a data da próxima cita. Configure a propiedade de Texto en Text(First(appointmentsCollection).startDateTime, LongDate).

  4. Seleccione o control de etiqueta que mostra o nome do cliente para a próxima cita. Configure a propiedade de Texto en Text(First(appointmentsCollection).customer.name).

  5. Seleccione F5 para previsualizar a aplicación. Na pantalla de Inicio, seleccione Citas. Esta acción creará a colección appointmentsCollection. Peche a xanela de vista previa e volva a Power Apps Studio.

  6. No panel Vista en árbore, seleccionar o control BrowseAppointmentsGallery na pantalla BrowseAppointments. Cambie a fórmula na propiedade Elementos da seguinte fórmula.

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

    Esta fórmula filtra os datos que se amosan na pantalla por nome de cliente, permitindo ao usuario introducir o nome dun cliente. As citas móstranse por orde segundo a data e hora.

  7. No panel Vista en árbore, expanda o control BrowseAppointmentsGallery e seleccione o control Title1_1. Cambie a propiedade de Texto ao seguinte.

    Text(ThisItem.startDateTime, LongDate)
    

    Esta fórmula mostra a parte da data do campo startDateTime da cita.

  8. No panel Vista en árbore, expanda o control BrowseAppointmentsGallery e seleccione o control Subtitle1_1. Cambie a propiedade de Texto ao seguinte.

    Text(ThisItem.startDateTime, ShortTime24)
    

Esta fórmula mostra o elemento de hora do campo startDateTime.

  1. No panel Vista en árbore, expanda o control BrowseAppointmentsGallery e seleccione o control Body1_1. Cambie a propiedade de Texto ao seguinte.

    ThisItem.customer.name
    
  2. No panel Vista en árbore, seleccione o control IconRefresh1_1 na pantalla BrowseAppointments. Configure a acción OnSelect na seguinte fórmula.

    ClearCollect(appointmentsCollection, Sort(Filter(FieldEngineerAPI.getapiappointments(), DateDiff(Today(), startDateTime) >= 0), startDateTime));
    
  3. No panel Vista en árbore, expanda a pantalla AppointmentDetails e seleccione o control DetailForm1_1. Configure a propiedade DataSource en appointmentsCollection.

  4. Seleccione o control IconEdit1 no panel Vista en árbore. Modifique a fórmula na propiedade DisplayMode para probar a colección appoinmentsCollection.

    If(DataSourceInfo(**appointmentsCollection**, DataSourceInfo.EditPermission), DisplayMode.Edit, DisplayMode.Disabled)
    
  5. No panel de Vista en árbore, expanda a pantalla DetailForm1_1 e seleccione o control Customer Name_DataCard1. Cambie a propiedade Valor predefinido a ThisItem.customer.name.

  6. Cambie as propiedades predeterminadas das restantes tarxetas de datos do seguinte xeito:

    • Enderezo do cliente_DataCard1: ThisItem.customer.address
    • Número de contacto_DataCard1: ThisItem.customer.contactNumber
    • Detalles do problema_DataCard1: ThisItem.problemDetails
    • Estado_DataCard1: ThisItem.appointmentStatus.statusName
    • Notas_DataCard1: ThisItem.notes
    • Imaxe_DataCard1_1: ThisItem.imageUrl
  7. No panel Vista en árbore, expanda a pantalla EditAppointment e seleccione o control EditForm1. Configure a propiedade DataSource en appointmentsCollection.

  8. No panel Vista en árbore, expanda o control EditForm1 e seleccione o control Nome do cliente_DataCard3. Cambie a propiedade Valor predefinido a ThisItem.customer.name.

  9. Cambie as propiedades predeterminadas das restantes tarxetas de datos do seguinte xeito:

  • Número de contacto_DataCard2: ThisItem.customer.contactNumber; ademais, cambie a propiedade MaxLength a 20
  • Detalles do problema_DataCard2: ThisItem.problemDetails
  • Estado_DataCard5: ThisItem.appointmentStatus.statusName
  • Notas_DataCard3: ThisItem.notes
  • Imaxe_DataCard2: ThisItem.imageUrl
  1. No panel Vista en árbore, expanda o control Detalles do problema_Card2. Cambie o nome do campo DataCardValueX (X será un número) neste control a ProblemDetailsValue. Repita este proceso para os controis DataCardValueX nas seguintes tarxetas de datos:

    • Estado_DataCard5: StatusValue
    • Notas_DataCard3: NotesValue

    Nota

    O control da imaxe tratarase no seguinte capítulo.

  2. Seleccione o ProblemDetailsValue e configure a propiedade MaxLength en 100.

  3. No panel Vista en árbore, seleccione o control IconAccept1 na pantalla EditAppointment. Configure a propiedade de acción OnSelect na seguinte fórmula.

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

    Esta fórmula chama a operación PUT para o controlador de citas na API web. Pasa o ID da cita para a cita actual como primeiro parámetro, seguido dos detalles que o usuario puido modificar na pantalla. Os detalles pásanse como obxecto JSON. As instrucións Eliminar, Definir e Recoller actualizan a colección appointmentsCollection cos datos gardados na base de datos.

    Nota

    Non empregue a función ClearCollect para eliminar e actualizar toda a colección en situacións coma esta, porque sería excesivo se —por exemplo— só cambiou un rexistro.

  4. No panel Vista en árbore, seleccione o control IconAccept1 na pantalla EditAppointment. Configure a propiedade da acción OnSelect ao seguinte.

    ResetForm(EditForm1);
    
    Navigate(AppointmentDetails, ScreenTransition.None);
    
  5. No panel esquerdo do separador Datos, faga clic co botón dereito do rato na conexión de datos Citas e logo seleccione Quitar para eliminalo da aplicación.

  6. Gardar a aplicación

  7. Seleccione F5 para previsualizar a aplicación. Dende a pantalla de Inicio, vaia á pantalla Citas, seleccione e edite unha cita e logo garde os cambios. Verifique que se actualizou a cita.

  8. Peche a xanela de vista previa e volva a Power Apps Studio.

Creación do servizo Azure Cognitive Search para a base de coñecemento de campo

A pantalla Base de coñecemento da aplicación non está ligada a ningunha orixe de datos actualmente. A API web inclúe operacións para consultar e actualizar as táboas Consellos, BoilerParts e Enxeñeiros na base de datos KnowledgeDB. Non obstante, o propósito da pantalla Consulta da aplicación é compatible con buscas en todas estas táboas. É probable que o volume de datos nestas táboas aumente rapidamente, polo que Maria, Kiana e Preeti deciden despregar Azure Cognitive Search para soportar esta función. Unha aplicación pode enviar consultas e recibir resultados de Azure Cognitive Search a través dun conector personalizado.

Azure Cognitive Search funciona mellor se os datos que se van buscar están contidos nunha única entidade de base de datos. Kiana crea unha vista na base de datos KnowledgeDB que presenta unha vista unificada das táboas Consellos, BoilerParts e Enxeñeiros, do seguinte xeito:

  1. No portal de Azure, vaia á páxina da Base de datos SQL KnowledgeDB.

  2. No panel esquerdo, seleccione Editor de consultas e inicie sesión na base de datos como sqladmin, usando o contrasinal Pa55w.rd.

    Iniciar sesión en Azure SQL Database.

  3. Na ventá da consulta, introduza a seguinte instrución e seleccione Executar.

    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
    

    Crear a vista "Coñecemento"

    Verifique que a vista, Coñecemento, creouse correctamente.

  4. No panel esquerdo, seleccione Cadeas de conexión. Anote a cadea de conexión ADO.NET; necesitaráa cando configure Azure Cognitive Search.

    Cadea de conexión ADO.NET para a base de datos KnowledgeDB.

Traballando con Kiana, Preeti configura unha nova instancia do servizo Azure Cognitive Search para realizar buscas en filas na vista Coñecemento, do seguinte xeito:

  1. Na páxina de Inicio, no portal de Azure, seleccione + Crear un recurso, insira Azure Cognitive Search, seleccione Intro e, a continuación, seleccione Crear.

    Crear o servizo de Azure Cognitive Search.

  2. Na páxina Novo servizo de busca, introduza os seguintes axustes e logo seleccione Revisar + crear:

    • Subscrición: Seleccione a súa subscrición de Azure
    • Grupo de recursos: webapi_rg
    • Nome do servizo: insira un nome único para o servizo
    • Nome da localización: seleccionar a súa rexión máis próxima
    • Nivel de prezos: De balde
  3. Na páxina de validación, seleccione Crear e agarde mentres se aprovisiona o servizo.

  4. Vaia á páxina do novo servizo de busca e seleccione Visión xeral, anote o URL (necesitará isto máis tarde cando cree o conector personalizado para Power Apps) e logo seleccione Importar datos.

    Páxina de presentación de servizos de busca.

  5. Na páxina Importar datos, na caixa da lista despregable Orixe de datos, seleccione Azure SQL Database.

    Seleccionar Azure SQL Database.

  6. Na páxina Conectarse aos datos, especifique a seguinte configuración:

    • Orixe de datos: Azure SQL Database
    • Nome da orixe de datos: knowledgebase
    • Cadea de conexión: escriba a cadea de conexión de Azure SQL Database para a base de datos KnowledgDB que gravou anteriormente; nesta cadea, asegúrese de establecer o contrasinal en Pa55w.rd
    • Deixe os campos ID do usuario e Contrasinal cos seus valores predeterminados; estes elementos son recuperados da cadea de conexión
  7. Seleccione conexión de proba. Asegúrese de que a proba ten éxito, seleccione [Coñecemento] na caixa de lista despregable Táboa/Vista e seleccione Seguinte: engadir habilidades cognitivas (opcional).

    Especificar a vista de busca.

  8. Na páxina Engadir habilidades cognitivas (opcional), seleccione Saltar a: personalizar o índice de destino.

  9. Na páxina Personalizar o índice de destino, seleccione Recuperable para todas as columnas e Buscable para Asunto, Corpo, Nome e Visión xeral. Seleccione Seguinte: crear un indexador.

    Personalizar o índice de destino.

  10. Na páxina Crea un indexador, cambie o Nome do indexador a indexador de bases de coñecemento. Para a Programación, seleccione Por hora, axuste a Columna de marca de auga alta a Id e, a continuación, seleccione Enviar:

    Crear o indexador.

  11. Para probar o indexador, na páxina Visión xeral do servizo de busca, seleccione Explorador de busca:

    Seleccionar explorador de busca.

  12. No campo da cadea de consulta, introduza unha palabra para buscar na base de coñecemento e seleccione Buscar. O servizo de busca debería xerar unha lista de documentos cunha coincidencia nos campos Asunto, Corpo, Nome ou Visión xeral e mostralos no panel Resultados. Anote o URL da solicitude e a mostre os Resultados; necesitará estes elementos máis tarde como exemplo de solicitude e resposta cando configure o conector personalizado de Power Apps.

    Resultados da consulta de busca.

Creación do conector personalizado do servizo Azure Cognitive Search

Kiana agora pode crear un conector personalizado que Power Apps usa para enviar solicitudes de busca ao servizo de busca. Faino usando Power Apps Studio, como segue:

  1. Inicie sesión en Power Apps.

  2. No panel da esquerda, expanda Datos e selecciona Conectores personalizados. No panel dereito, seleccione + Novo conector personalizado e, a continuación, seleccione Crear desde cero:

    Novo conector personalizado.

  3. No diálogo Crear desde cero, estableza o nome do novo conector en VanArsdelKBConnector e, a continuación, seleccione Continuar:

    Crear un conector de base de coñecemento.

  4. Na páxina Información xeral, introduza unha descrición e configure o Esquema en HTTPS. Na caixa Servidores, introduza o URL do seu servizo de busca (xa o anotou anteriormente), pero sen o prefixo https:// e logo seleccione Seguridade.

    Páxina xeral do conector do servizo de busca.

  5. Na páxina Seguridade, na caixa de lista despregable Autenticación, seleccione Chave de API. No campo Etiqueta de parámetros, insira api-key. No campo Nome do parámetro, insira api-key. Seleccione Definición.

    Páxina de seguranza do conector do servizo de busca.

  6. Na páxina Definición, seleccione Nova acción. No campo Resumo, insira Consulta. No campo Descrición, insira Consultar a base de coñecemento. No campo Id de operación, insira Consulta. En Solicitude, seleccione + Importar da mostra.

    Páxina de definición do conector do servizo de busca.

  7. No diálogo Importar a partir da mostra, introduza os seguintes valores e logo seleccione Importar:

    • Verbo: GET
    • URL: proporcione o URL de solicitude de exemplo que anotou cando probou o servizo de busca no explorador de busca anteriormente
    • Cabeceiras: Content-type

    Importar definición a partir dunha solicitude de mostra.

  8. De volta na páxina Definición, desprácese ata a sección Consulta, seleccione o botón de puntos suspensivos xunto a busca e, a continuación, seleccione Editar.

    Editar a definición de solicitude de busca.

  9. Na pantalla de edición, na sección Parámetros, no campo Valor predeterminado, introduza un asterisco (*_). Deixe os outros campos nos seus valores predeterminados e logo seleccione _ Atrás.

    Configurar valor predefinido de busca.

  10. Na páxina Definición, na sección Consulta, seleccione o botón de puntos suspensivos xunto a api-version e, a continuación, seleccione Editar.

    Editar a versión da API.

  11. Na pantalla de edición, na sección Parámetros, no campo Valor predeterminado, insira 2020-06-30-versión preliminar (esta é a versión asociada á versión actual de Azure Cognitive Search; pode ver a versión no URL da solicitude que anotou anteriormente). Configure É requerido a Si e defina Visibilidade en interno. Deixe os outros campos nos seus valores predeterminados e logo seleccione Atrás.

    Establecer os valores da API para os parámetros de busca.

  12. Na páxina Definición, desprácese ata a sección Resposta e seleccione + Engadir resposta predeterminada.

    Engadir unha definición de resposta predeterminada.]

  13. No diálogo Importar da mostra, no campo Cabeceiras, introduza o texto Content-type. No campo Corpo, introduza os resultados de exemplo que rexistrou ao probar o servizo de busca e logo seleccione Importar.

    Importar a mensaxe de resposta dunha mostra.

  14. Na páxina Definición, seleccione a resposta predeterminada.

    Escoller a resposta predefinida.

  15. No campo Descrición da resposta Content-type, insira aplicación/json e, a continuación, seleccione Atrás.

    Configurar o contido da cabeceira da mensaxe de resposta.

    Nota

    A sección Corpo desta páxina debería amosar os campos da resposta, como Corpo, Id, Nome, Visión xeral e Asunto se se analizou con éxito.

  16. Seleccione Crear conector.

    Crear o conector de Azure Cognitive Search.

O conector debe ser creado sen informar de erros ou avisos.

Actualización da aplicación para usar Azure Cognitive Search: base de coñecemento de campo

María agora pode usar o conector personalizado na aplicación. Pero primeiro, require unha clave que lle conceda os privilexios necesarios para conectarse ao servizo de Azure Cognitive Search. Preeti obtén a clave da páxina Chaves do servizo no portal de Azure e dálla a María.

Clave de servizo de busca no portal de Azure.

María edita a aplicación en Power Apps Studio e realiza as seguintes tarefas:

  1. Abrir a aplicación VanArsdelApp para editala.

  2. No menú Ver, seleccionar Fontes de datos e, a continuación, seleccionar Engadir datos.

    Engadir o orixe de datos á aplicación.

  3. Na caixa Buscar, en Seleccionar unha orixe de datos, inserir Van. O conector VanArdelKBConnector debería estar listado.

    Buscar o conector de Azure Cognitive Search.

  4. Seleccionar o conector VanArdelKBConnector. No panel VanArdelKBConnector, introducir a clave que Preeti proporcionou para o servizo de busca e, a continuación, seleccionar Conectar.

    Introducir a clave da API.

  5. No menú Ficheiro, garda e pecha a aplicación e logo ábrea de novo. É posible que se lle solicite que autorice o uso do conector personalizado cando a aplicación volva abrir.

    Nota

    Este paso é necesario para habilitar o conector personalizado.

  6. No panel Vista en árbore, expanda a pantalla Knowledgebase e seleccione o control TextSearchBox2. Introduza a seguinte fórmula para a acción OnChange.

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

    A esta fórmula chama a operación Consulta do conector personalizado buscando elementos que coincidan co termo que o usuario escribe na caixa de busca. Os resultados almacénanse nunha colección chamada azResult.

  7. No panel Vista en árbore, na pantalla Knowledgebase e seleccione o control BrowseGallery2. Configure a propiedade Elementos en azResult.

  8. Amplíe o control BrowseGallery2 e elimine o control Imaxe4.

  9. Seleccione o control Title2. Defina as seguintes propiedades:

    • Texto: ThisItem.Subject
    • X: 24
    • Ancho: Parent.TemplateWidth - 104
  10. Seleccione o control Subtitle2. Configure a propiedade Texto en ThisItem.Body.

  11. Seleccione F5 para previsualizar a aplicación. Na pantalla Knowledgebase, introduza un termo de busca e, a seguir, seleccione Intro. Deberían amosarse artigos coincidentes da base de coñecemento.

    Consultar da base de coñecemento na aplicación.

    Nota

    A pantalla de detalles aínda non se creou, así que seleccionar a icona > xunto a un artigo non funciona.

  12. Peche a xanela de vista previa e volva a Power Apps Studio.

  13. No panel Vista en árbore, faga clic co botón dereito na pantalla PartDetails e logo seleccione Duplicar pantalla. Esta acción engadirá outra pantalla á aplicación, chamada PartDetails_1.

    Duplicar a pantalla PartDetails.

  14. No panel Vista en árbore, cambiente o nome da pantalla PartDetails_1 a KnowledgebaseDetails.

    Seleccione o control LblAppNameX na pantalla; estableza a propiedade Texto en "Detalles do artigo" (incluídas as comiñas).

  15. No panel Vista en árbore, seleccione o control DetailFormX na pantalla. Defina as seguintes propiedades:

    • Fonte de datos: azResult
    • Elemento: BrowseGallery2.Selected

    Nota

    BrowseGallery2 é a galería de navegación da pantalla Base de coñecemento. Na súa aplicación, esta galería pode ter un nome diferente.

  16. No panel Vista en árbore, expanda o formulario DetailFormX e, a continuación, cambie os nomes dos seguintes controis da tarxeta de datos:

    • Name_DataCard1_1: Name_DataCard
    • CategoryID_DataCard1_1: Subject_DataCard
    • Overview_DataCard1_1: Overview_DataCard
    • Price_DataCard1_1: Body_DataCard
  17. Elimine os controis NumberInStock_DataCard1_1 e Image_DataCard1_1.

  18. Seleccione o control Name_DataCard. Configure a propiedade Valor predefinido a ThisItem.Name.

  19. Seleccione o control Subject_DataCard. Defina as seguintes propiedades:

    • DataField: "Asunto"
    • DisplayName: "Asunto"
    • Valor predefinido: ThisItem.Subject
  20. Seleccione o control Overview_DataCard. Configure a propiedade Valor predefinido a ThisItem.Overview.

  21. Seleccione o control Body_DataCard. Defina as seguintes propiedades:

    • DataField: "Corpo"
    • DisplayName: "Corpo"
    • Valor predefinido: ThisItem.Body
  22. Seleccione o control DataCardValueX no control Body_DataCard. Configure a propiedade Texto a Parent.Default.

  23. Cambie o tamaño de cada un dos controis da tarxeta de datos para estendelos pola pantalla.

    A pantalla Detalles do artigo.

  24. Seleccione a frecha cara atrás na cabeceira da pantalla. Cambie a propiedade de acción OnSelect a Navigate(Knowledgebase, ScreenTransition.None).

  25. No panel Vista en árbore, seleccione a pantalla Knowledgebase e logo seleccione o control BrowseGalleryX. Cambie a propiedade de acción OnSelect a Navigate(KnowledgebaseDetails, ScreenTransition.None). Esta acción amosa a pantalla de detalles do artigo da base de coñecemento cando o usuario selecciona a icona > dunha entrada na pantalla de exploración.

  26. Gardar a aplicación

  27. Seleccione F5 para previsualizar a aplicación. Na pantalla Knowledgebase, introduza un termo de busca e, a seguir, seleccione Intro. Seleccione un artigo e verifique que se mostren os seus detalles. Verifique que a icona Atrás devolve o usuario á pantalla de exploración.

  28. Peche a xanela de vista previa e volva a Power Apps Studio.

Maria, Kiana e Preeti incorporaron con éxito a aplicación web e Azure Cognitive Search á aplicación.