Plantillas web como API

Completado

La tabla Plantilla de página tiene una configuración que especifica si la página debe usar las plantillas comunes de encabezado y pie de página del sitio web cuando se utilice la plantilla web.

Cuando no se usan el encabezado ni el pie de página del sitio web, la plantilla asume la responsabilidad de generar la salida completa de la página. Si está representando HTML, esta salida incluye todo: el doctype, el elemento <html> de raíz y todo lo demás. Este enfoque podría ser útil en distintos escenarios; por ejemplo:

  • Páginas de propósito especial que tienen un aspecto diferente del resto del portal; por ejemplo, páginas de destino de una campaña de marketing.

  • La plantilla web genera contenido que no es HTML y devuelve datos en XML, JSON u otros formatos.

Por ejemplo, puede crear una plantilla web que devuelva una lista de cuentas o cualquier otro dato al que tenga acceso el usuario actual, en 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 %}

Nota

En este ejemplo, en lugar de la etiqueta entityview, puede usar la consulta FetchXML dentro de la etiqueta fetchxml. El uso de FetchXML en línea agrega cierta flexibilidad a la consulta. Puede generar la consulta dinámicamente mediante parámetros de plantilla o incluso con un objeto request que incluya parámetros de cadena de consulta de una solicitud de página HTTP actual.

Esta plantilla se usaría sin un encabezado ni pie de página, con el tipo MIME establecido en application/json. La salida sería similar a la mostrada en el siguiente ejemplo:

[
  {
      "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"
  }
]

Sugerencia

Considere usar la API web de portales para la recuperación de datos cuando corresponda. La API web de portales es rápida y evita por completo el procesamiento de plantillas del lado del servidor. Sin embargo, si se requiere alguna transformación de datos, deberá hacerlo usando JavaScript en el lado del cliente. Por otro lado, las plantillas de Liquid pueden transformar y usar los datos por completo en el lado del servidor. Para obtener más información, consulte Operaciones de lectura de portales con la API web.

Los usuarios de navegadores no verían la página que utiliza esta plantilla web, sino que se llamaría desde el código JavaScript y definiría de forma efectiva un punto de conexión de API para su solución. JavaScript en otra página podría cargar y representar estos datos según fuese necesario.

Hay autorización, y el acceso a los datos de Microsoft Dataverse que usan esta plantilla "sin encabezado" no es diferente a si la salida se procesase como HTML. La página de llamada suele necesitar la autenticación del usuario antes de llamar al punto de conexión.