Modelos da Web como API
A tabela Modelo de Página tem uma configuração que especifica se a página deve usar os modelos de cabeçalho e rodapé de site comuns quando o modelo da Web for usado.
Quando o cabeçalho e o rodapé do site não são usados, o modelo assume a responsabilidade pela geração de toda a saída da página. Se você estiver renderizando HTML, essa saída inclui o doctype, o elemento raiz <html>
e tudo mais. Essa abordagem pode ser útil em diferentes cenários, como quando:
As páginas de finalidade especial precisam ser diferentes do restante do portal, como as páginas iniciais de campanhas de marketing.
O modelo da Web gera conteúdo não HTML, retornando dados em XML, JSON ou outros formatos.
Por exemplo, é possível criar um modelo da Web que retorne uma lista de contas ou outros dados aos quais o usuário atual tem acesso, no formato JSON
.
{% entityview logical_name:'account', name:'Active Accounts' %}
[
{% for acc in entityview.records -%}
{
"name": "{{ acc.name }}",
"phone": "{{ acc.telephone1 }}"
}{% unless forloop.last %},{% endunless %}
{% endfor -%}
]
{% endentityview %}
Observação
Neste exemplo, em vez da marca entityview
, é possível usar uma consulta FetchXML na marca fetchxml
. O uso de FetchXML em linha agrega flexibilidade à consulta. Você pode criar a consulta dinamicamente usando parâmetros de modelo ou até mesmo um objeto request
que contém parâmetros de cadeia de caracteres de consulta de uma solicitação de página HTTP atual.
Você usaria este modelo sem cabeçalho e rodapé, com o tipo MIME definido como application/json
. O resultado é semelhante ao seguinte exemplo:
[
{
"name": "A Datum Corporation",
"phone": "425-555-0182"
},
{
"name": "A Datum Fabrication",
"phone": "303-555-0134"
},
{
"name": "A Datum Integration",
"phone": "512-555-0163"
},
{
"name": "A. Datum",
"phone": "+86-23-4444-0100"
},
{
"name": "Adventure Works",
"phone": "+27-264-1234567"
}
]
Dica
Considere o uso da API Web de portais para a recuperação de dados quando aplicável. A API Web de portais é rápida e evita o processamento integral de modelos no lado do servidor. No entanto, se a transformação de dados for necessária, você precisará concluí-la usando JavaScript no lado do cliente. Em contrapartida, os modelos Liquid podem transformar e usar os dados inteiramente no lado do servidor. Para obter mais informações, veja Operações de leitura de portais usando a API Web.
A página que usa esse modelo da Web não seria vista por pessoas que usassem um navegador; em vez disso, ele é chamado do código JavaScript, definindo de fato um ponto de extremidade de API para sua solução. O JavaScript em outra página poderá carregar e renderizar esses dados conforme necessário.
A autorização está em vigor, e o acesso aos dados do Microsoft Dataverse usando esse modelo "sem cabeçalho" é igual a uma saída renderizada como HTML. A página que faz a chamada normalmente requer autenticação do usuário antes para chamar o ponto de extremidade.