以 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 时的情况没有什么不同。 调用页面在调用端点之前,一般需要验证用户身份。