API de JavaScript que se pueden utilizar en vistas
Utilice la siguiente información de consulta para obtener información sobre las API de JavaScript que se pueden utilizar en las vistas.
Las siguientes API y el escenario de la vista son específicos de Application Designer. Para obtener una lista de las API de vista que se comparten entre el Diseñador de aplicaciones y el Diseñador de procesos en las funciones de flujo de trabajo tradicionales, consulte Referencia de API.
Si necesita crear una solicitud xhr desde la vista a otros servicios de oferta, debido a la protección de seguridad entre dominios, debe volver a escribir la serie de conexión utilizando el método rewriteURI que está disponible en el objeto de contexto de la vista. rewriteURI añade la serie de conexión con información de conexión de Application Engine Proxy. Cuando se envía la solicitud xhr desde la vista con la serie de conexión actualizada, la solicitud se envía a Application Engine Proxy. El proxy busca el recurso de aplicación de la oferta y a continuación, direcciona la solicitud al servicio de oferta. Es necesario definir un recurso de aplicación para el servicio de oferta y pasar el nombre del recurso de aplicación a la API rewriteURI. Si el recurso de aplicación no está definido o no se encuentra, Application Engine Proxy no direcciona la solicitud y devuelve un error a la vista.
Además, una aplicación que muestra documentos puede utilizar getAddressableUrl para proporcionar al usuario un enlace que se puede compartir para visualizar el documento actual. A continuación, se puede utilizar subscribeAppState para mostrar automáticamente ese documento cuando se utiliza el enlace compartido.
Función | Descripción |
---|---|
context.rewriteURI(uri, ' resourceName, ' resourceKeySuffix) | Esta API devuelve una serie URI del proxy para realizar llamadas de la API REST a un servidor de fondo. Si un proxy o resourceName no está definido, se devuelve el URI original.
|
context.getCSRFTokenHeaderName() | Devuelve el nombre de cabecera HTTP para Cross-Site Request Forgery. |
context.getCSRFToken() | Devuelve el valor de cadena de falsificación de solicitud entre sitios que se va a utilizar en todas las futuras solicitudes HTTP estableciendo la cabecera si este valor no es de tipo "sin definir". |
context.loadFile(file, ' callback) | Maneja la carga de un archivo en un objeto de negocio DocumentFile.
|
context.getAddressableUrl(appState, ' withPageId) | Devuelve el URL de la aplicación con el estado de aplicación opcional añadido al URL. Si el usuario vuelve a la aplicación utilizando el URL, vuelve a la página de inicio de la aplicación.
|
context.subscribeAppState(callback) | Registra una función de devolución de llamada para recibir una notificación asociada al estado de la aplicación. Una función de devolución de llamada se debe registrar en un manejador de sucesos de vista o carga de una vista.
|
context.isWorkflowPXServer() | Comprueba si el servidor es un Workflow Process Service Server. Para la vista en la aplicación, siempre devuelve false. |
Ejemplo: Conectarse a Watson Translation Service
- Cree un recurso de aplicación "Punto final definido"; por ejemplo, watson. A continuación, añada información de host, puerto y autenticación al recurso de aplicación.
- Utilice el siguiente código de ejemplo para enviar la solicitud xhr en la vista.
var pillarStr = "watson"; var connectionStr = "/language-translator/api/v3/translate?version=2018-05-01"; connectionStr = this.context.rewriteURI(connectionStr, pillarStr); xhr.open("POST", connectionStr, true); //Send the proper header information along with the request xhr.setRequestHeader("Content-Type", "application/json"); xhr.setRequestHeader("Accept", "application/json"); // set CSRF Token xhr.setRequestHeader(this.context.getCSRFTokenHeaderName(), this.context.getCSRFToken()); var _this = this; xhr.onreadystatechange = function () { if (xhr.readyState === 4 && xhr.status === 200) { var json = JSON.parse(xhr.responseText); console.log("response translation: ", json.translations[0].translation); console.log("response: ", json); } else { console.log("post request problem: " + xhr.readyState); console.log("post request problem: " + xhr.status); } }; var senddata = {text: this.context.binding.get("value"), source: this.context.options.fromLang.get("value").name, target: this.context.options.toLang.get("value").name }; // Add JSON body xhr.send(JSON.stringify(senddata));