Consultar datos mediante a API web de portais
Nota
A partir do 12 de outubro de 2022, Portais de Power Apps é Power Pages. Máis información: Microsoft Power Pages xa está dispoñible de forma xeral (blog)
Proximamente migraremos e uniremos a documentación de Portais de Power Apps coa documentación de Power Pages.
Pode usar as operacións de API web dispoñibles nos portais. As operacións da API web consisten en solicitudes e respostas HTTP. Este artigo proporciona operacións de lectura de exemplo, métodos, URI e o JSON de exemplo que pode usar na solicitude HTTP.
Requisitos previos
A súa versión do portal debe ser 9.4.1.x ou superior.
Active a táboa e o campo para as operacións da API web. Máis información: Axustes do sitio para a API web
A API web de portais accede aos rexistros de táboas e segue os permisos de táboa dados aos usuarios a través dos roles web asociados. Asegúrese de configurar os permisos de táboa correctos. Máis información: Crear roles web
Nota
Cando faga referencia a táboas de Dataverse usando a API web de portais, cómpre usar EntitySetName, por exemplo, para acceder á táboa de conta, a sintaxe do código usará EntitySetName de contas.
Consultar rexistros
O seguinte exemplo consulta os rexistros da conta:
Operación | Método | URI |
---|---|---|
Recuperar rexistros da táboa | GET | [Portal URI]/_api/accounts Exemplo: https://contoso.powerappsportals.com/_api/accounts |
Resposta de exemplo
{
"value": [
{
"@odata.etag": "W/\"1066412\"",
"name": "Fourth Coffee (sample)",
"accountid": "d2e11ba8-92f6-eb11-94ef-000d3a5aa607"
},
{
"@odata.etag": "W/\"1066413\"",
"name": "Litware, Inc. (sample)",
"accountid": "d4e11ba8-92f6-eb11-94ef-000d3a5aa607"
}
]
}
Use as opcións de consulta do sistema $select e $top para devolver a propiedade do nome das tres primeiras contas:
Operación | Método | URI |
---|---|---|
Recuperar os tres primeiros rexistros de entidades | GET | [Portal URI]/_api/accounts?$select=name,revenue&$top=3 Exemplo: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$top=3 |
Recuperar a conta usando o ID da conta:
Operación | Método | URI |
---|---|---|
Recuperar propiedades específicas para un rexistro | GET | [Portal URI]/_api/accounts(e0e11ba8-92f6-eb11-94ef-000d3a5aa607)?$select=name Exemplo: https://contoso.powerappsportals.com/_api/accounts(e0e11ba8-92f6-eb11-94ef-000d3a5aa607)?$select=name |
Resposta de exemplo
{
"@odata.etag": "W/\"1066414\"",
"name": "Adventure Works (sample)",
"accountid": "d6e11ba8-92f6-eb11-94ef-000d3a5aa607"
}
Aplicar opcións de consulta do sistema
Cada unha das opcións de consulta do sistema que anexa ao URL do conxunto de entidades engádese mediante a sintaxe das cadeas de consulta. A primeira anéxase despois de [?] e as seguintes opcións de consulta sepáranse mediante [&]. Todas as opcións de consulta distinguen entre maiúsculas e minúsculas, como se mostra no seguinte exemplo:
Método | URI |
---|---|
GET | [Portal URI]/_api/accounts?$select=name,revenue&$filter=revenue gt 90000&$top=3 Exemplo: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$filter=revenue gt 90000&$top=3 |
Propiedades específicas da solicitude
Use a opción de consulta do sistema $select para limitar as propiedades devoltas como se mostra no seguinte exemplo:
Método | URI |
---|---|
GET | [Portal URI]/_api/accounts?$select=name,revenue&$top=3 Exemplo: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$top=3 |
Importante
É unha práctica recomendada do desempeño. Se non se especifican propiedades e configurou o valor de configuración do sitio Webapi/<table name>/fields
en *
, entón todas as propiedades serán devoltas usando $select
. Se non se especifican propiedades, devolverase un erro.
Filtrar resultados
Use a opción de consulta do sistema $filter para establecer os criterios para os que se devolverán as filas.
Operadores de filtro estándar
A API web admite os operadores de filtro OData estándar que se indican na seguinte táboa:
Operador | Descripción | Exemplo |
---|---|---|
Operadores de comparación | ||
eq | Igual que | $filter=revenue eq 100000 |
ne | Diferente | $filter=revenue ne 100000 |
gt | Superior a | $filter=revenue gt 100000 |
ge | Maior que ou igual a | $filter=revenue ge 100000 |
lt | Inferior a | $filter=revenue lt 100000 |
le | Menor que ou igual a | $filter=revenue le 100000 |
Operadores lóxicos | ||
e | "E" lóxico | $filter=revenue lt 100000 and revenue gt 2000 |
or | "Ou" lóxico | $filter=contains(name,'(sample)') or contains(name,'test') |
not | Negación lóxica | $filter=not contains(name,'sample') |
Operadores de agrupamento | ||
( ) | Agrupación con precedencia | (contains(name,'sample') or contains(name,'test')) and revenue gt 5000 |
Funcións de consulta estándar
A API web admite estas funcións estándar de consulta de cadeas OData:
Función | Exemplo |
---|---|
contén | $filter=contains(name,'(sample)') |
endswith | $filter=endswith(name,'Inc.') |
startswith | $filter=startswith(name,'a') |
Funcións de consulta de Dataverse
A API web é compatible con funcións de consulta de Dataverse para filtrar resultados. Para obter máis información, consulte Referencia da función de consulta da API web.
Ordenar resultados
Especifique a orde na que se devolven os elementos mediante a opción de consulta do sistema $orderby . Use o sufixo asc ou desc para especificar a orde ascendente ou descendente respectivamente. O valor predeterminado é ascendente se non se aplica o sufixo. O seguinte exemplo mostra a recuperación do nome e das propiedades dos ingresos das contas ordenadas por ingresos ascendentes e por nome descendente.
Método | URI |
---|---|
GET | [Portal URI]/_api/accounts?$select=name,revenue&$orderby=name asc,revenue desc&$filter=revenue gt 90000 Exemplo: https://contoso.powerappsportals.com/_api/accounts?$select=name,revenue&$orderby=name asc,revenue desc&$filter=revenue gt 90000 |
Agregar e agrupar os resultados
Ao usar $apply, podes agregar e agrupar os teus datos de forma dinámica como se ve nos seguintes exemplos:
Escenarios | Exemplo |
---|---|
Lista de estados únicos na consulta | accounts?$apply=groupby((statuscode)) |
Agregar suma do valor estimado | opportunities?$apply=aggregate(estimatedvalue with sum as total) |
Tamaño medio do acordo en función do valor e o estado estimados | opportunities?$apply=groupby((statuscode),aggregate(estimatedvalue with average as averagevalue) |
Suma do valor estimado en función do estado | opportunities?$apply=groupby((statuscode),aggregate(estimatedvalue with sum as total)) |
Ingresos totais da oportunidade por nome da conta | opportunities?$apply=groupby((parentaccountid/name),aggregate(estimatedvalue with sum as total)) |
Nomes dos contactos principais para as contas en "WA" | accounts?$apply=filter(address1_stateorprovince eq 'WA')/groupby((primarycontactid/fullname)) |
Data e hora da última creación do rexistro | accounts?$apply=aggregate(createdon with max as lastCreate) |
Data e hora da primeira creación do rexistro | accounts?$apply=aggregate(createdon with min as firstCreate) |
Recuperar un reconto de filas
Use a opción de consulta do sistema $count con un valor de true para incluír un reconto de entidades que coincidan cos criterios de filtro ata 5.000.
Método | URI |
---|---|
GET | [Portal URI/_api/accounts?$select=name&$filter=contains(name,'sample')&$count=true Exemplo: https://contoso.powerappsportals.com/_api/accounts?$select=name&$filter=contains(name,'sample')&$count=true |
Resposta de exemplo
{
"@odata.count": 10,
"value": [
{
"@odata.etag": "W/\"1066412\"",
"name": "Fourth Coffee (sample)",
"accountid": "d2e11ba8-92f6-eb11-94ef-000d3a5aa607"
},
{
"@odata.etag": "W/\"1066413\"",
"name": "Litware, Inc. (sample)",
"accountid": "d4e11ba8-92f6-eb11-94ef-000d3a5aa607"
},
{
"@odata.etag": "W/\"1066414\"",
"name": "Adventure Works (sample)",
"accountid": "d6e11ba8-92f6-eb11-94ef-000d3a5aa607"
}
]
}
Se non queres devolver ningún dato excepto o reconto, podes aplicar $count a calquera colección para obter só o valor.
Método | URI |
---|---|
GET | [Portal URI/_api/accounts/$count Exemplo: https://contoso.powerappsportals.com/_api/accounts/$count |
Resposta de exemplo
3
Comparación de columnas
O seguinte exemplo mostra como comparar columnas usando a API web:
Método | URI |
---|---|
GET | [Portal URI]/_api/contacts?$select=firstname&$filter=firstname eq lastname Exemplo: https://contoso.powerappsportals.com/_api/contacts?$select=firstname&$filter=firstname eq lastname |
Recuperar rexistros de táboa relacionados cunha consulta
Use a opción de consulta do sistema $expand nas propiedades de navegación para controlar que datos de entidades relacionadas se devolven.
Busca da propiedade de navegación asociada
Terá que usar Microsoft.Dynamics.CRM.associatednavigationproperty como o atributo de busca ao usar a opción de consulta $expand.
Para determinar a Microsoft.Dynamics.CRM.associatednavigationproperty dun atributo, pode facer a seguinte solicitude http GET para a columna utilizando a seguinte convención de nomenclatura: _nome_valor.
No seguinte exemplo, podemos determinar a propiedade de navegación asociada da columna Contacto principal da táboa Conta especificando o nome da columna primarycontactid formatando o nome na solicitude: _primarycontactid_value.
Método | URI |
---|---|
GET | [Portal URI]/_api/accounts?$select=_primarycontactid_value Exemplo https://contoso.powerappsportals.com/_api/accounts?$select=_primarycontactid_value |
Resposta de exemplo
{
"value": [
{
"@odata.etag": "W/\"2465216\"",
"_primarycontactid_value@OData.Community.Display.V1.FormattedValue": "Yvonne McKay (sample)",
"_primarycontactid_value@Microsoft.Dynamics.CRM.associatednavigationproperty": "primarycontactid",
"_primarycontactid_value@Microsoft.Dynamics.CRM.lookuplogicalname": "contact",
"_primarycontactid_value": "417319b5-cd18-ed11-b83c-000d3af4d812",
"accountid": "2d7319b5-cd18-ed11-b83c-000d3af4d812"
}
]
}
Vemos pola resposta que a propiedade de navegación asociada é primarycontactid. A propiedade de navegación asociada pode ser o nome lóxico ou nome do esquema da columna de busca dependendo de como foi creada a táboa.
Para máis información consulte Recuperar datos sobre propiedades de busca.
Recuperar rexistros de táboas relacionados ampliando as propiedades de navegación dun único valor
O seguinte exemplo mostra como recuperar o contacto para todos os rexistros da conta. Para os rexistros de contacto relacionados, só estamos recuperando contactid e fullname.
Método | URI |
---|---|
GET | [Portal URI]/_api/accounts?$select=name&$expand=primarycontactid($select=contactid,fullname) Exemplo: https://contoso.powerappsportals.com/_api/accounts?$select=name&$expand=primarycontactid($select=contactid,fullname) |
Resposta de exemplo
{
"value": [
{
"@odata.etag": "W/\"1066412\"",
"name": "Fourth Coffee (sample)",
"accountid": "d2e11ba8-92f6-eb11-94ef-000d3a5aa607",
"primarycontactid": {
"contactid": "e6e11ba8-92f6-eb11-94ef-000d3a5aa607",
"fullname": "Yvonne McKay (sample)"
}
},
{
"@odata.etag": "W/\"1066413\"",
"name": "Litware, Inc. (sample)",
"accountid": "d4e11ba8-92f6-eb11-94ef-000d3a5aa607",
"primarycontactid": {
"contactid": "e8e11ba8-92f6-eb11-94ef-000d3a5aa607",
"fullname": "Susanna Stubberod (sample)"
}
}
]
}
Recuperar táboas relacionadas ampliando as propiedades de navegación con valor de colección
Se amplía os parámetros de navegación con valores de colección para recuperar táboas relacionadas para conxuntos de entidades, só se devolve un nivel de profundidade se hai datos. En caso contrario, a colección devolverá unha matriz baleira.
Método | URI |
---|---|
GET | [Portal URI]/_api/accounts?$top=5&$select=name&$expand=Account_Tasks($select=subject,scheduledstart) Exemplo: https://contoso.powerappsportals.com/_api/accounts?$top=5&$select=name&$expand=Account_Tasks($select=subject,scheduledstart) |
Recuperar táboas relacionadas ampliando as propiedades de navegación cun valor único ou cun valor de colección
O seguinte exemplo mostra como pode expandir as entidades relacionadas para conxuntos de entidades utilizando propiedades de navegación únicas e con valores de colección. Deberá especificar o nome da relación da táboa na sintaxe do seu código.
Método | URI |
---|---|
GET | [Portal URI]/_api/accounts?$top=5&$select=name&$expand=primarycontactid($select=contactid,fullname),Account_Tasks($select=subject,scheduledstart) Exemplo: https://contoso.powerappsportals.com/_api/accounts?$top=5&$select=name&$expand=primarycontactid($select=contactid,fullname),Account_Tasks($select=subject,scheduledstart) |
Seguinte paso
Operacións de escritura, actualización e eliminación de portais mediante a API web
Consulte tamén
Visión xeral da API web dos portais
Titorial: usar a API web dos portais
Configurar permisos de columnas
Nota
Pode indicarnos as súas preferencias para o idioma da documentación? Realice unha enquisa breve. (teña en conta que esa enquisa está en inglés)
Esta enquisa durará sete minutos aproximadamente. Non se recompilarán datos persoais (declaración de privacidade).
Comentarios
https://aka.ms/ContentUserFeedback.
Proximamente: Ao longo de 2024, retiraremos gradualmente GitHub Issues como mecanismo de comentarios sobre o contido e substituirémolo por un novo sistema de comentarios. Para obter máis información, consulte:Enviar e ver os comentarios