以 API 的形式实现 Web 模板
页面模板表有一项设置指定了在使用 Web 模板时,页面是否要使用通用网站页眉和页脚模板。
不使用网站页眉和页脚时,模板将负责生成整个页面输出。 如果您要呈现 HTML,本项输出将会包含从 doctype 到根 <html>
元素之间的全部内容。 本方法适用于多种不同场景,例如:
专用页面在外观上需不同于门户的其他部分,比如市场营销活动登录页面。
Web 模板可生成非 HTML 内容,返回 XML、JSON 或其他格式数据。
例如,您可创建 Web 模板,以 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 %}
注意
在本示例中,您可以使用 fetchxml
标记内的 FetchXML 查询,而不使用 entityview
标记。 使用内联 FetchXML 可提高查询的灵活性。 您可以使用模板参数,甚至使用包含当前 HTTP 页面请求的查询字符串参数的 request
对象,动态生成查询。
使用本模板时可以不带页眉和页脚,并将 MIME 类型设置为 application/json
。 输出内容类似于以下示例:
[
{
"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"
}
]
提示
考虑在适用情况下使用门户 Web API 进行数据检索。 门户 Web API 速度很快,可完全避免在服务器端处理模板。 但是,如果需要进行数据转换,则需要在客户端使用 JavaScript 完成。 与之相反,Liquid 模板可以完全在服务器端转换和使用数据。 有关详细信息,请参阅使用 Web API 的门户读取操作。
使用浏览器的用户不会看到使用本 Web 模板构建的页面;该页面会从 JavaScript 代码调用,从而为您的解决方案有效定义 API 终结点。 其他页面上的 JavaScript 可以按需加载和呈现此数据。
可提供授权,并且使用本“无页眉”模板访问 Microsoft Dataverse 数据与将输出呈现为 HTML 时的情况没有什么不同。 调用页面在调用端点之前,一般需要验证用户身份。