API JavaScript che è possibile utilizzare nelle viste
Utilizzare le seguenti informazioni di riferimento per informazioni sulle API JavaScript che possono essere utilizzate nelle viste.
Le seguenti API di visualizzazione e scenario sono specifici di Application Designer. Per un elenco delle API di visualizzazione condivise tra Application Designer e Process Designer nelle capacità del workflow tradizionale, consultare Riferimento API.
Se è necessario effettuare una richiesta xhr dalla propria vista ad altri servizi dell'offerta, a causa della protezione di sicurezza tra domini, è necessario riscrivere la stringa di connessione xhr utilizzando il metodo rewriteURI disponibile nell'oggetto di contesto della vista. rewriteURI accoda la stringa di connessione con le informazioni di connessione proxy Application Engine . Quando si invia la richiesta xhr dalla vista con la stringa di connessione aggiornata, la richiesta viene inviata al proxy di Application Engine . Il proxy cerca la risorsa applicativa per la tua offerta e poi instrada la tua richiesta al servizio di offerta. È necessario definire una risorsa dell'applicazione per il servizio dell'offerta e passare il nome della risorsa dell'applicazione all'API rewriteURI . Se la risorsa dell'applicazione non viene definita o trovata, il proxy di Application Engine non instrada la richiesta e restituisce un errore alla vista.
Inoltre, un'applicazione che visualizza documenti può utilizzare getAddressableUrl per fornire all'utente un collegamento condivisibile per visualizzare il documento corrente. Quindi, subscribeAppState può essere utilizzato automaticamente per visualizzare il documento quando viene utilizzato il collegamento condiviso.
| Funzione | Descrizione |
|---|---|
| context.rewriteURI(uri, 'resourceName, 'resourceKeySuffix) | Questa API restituisce una stringa URI proxy per effettuare chiamate REST API ad un server di backend. Se non è definito un proxy o resourceName , viene restituito l'URI originale.
|
| context.getCSRFTokenHeaderName() | Restituisce il nome dell'intestazione HTTP per CSRF (Cross-Site Request Forgery). |
| context.getCSRFToken() | Restituisce il valore del token cross site request forgery da utilizzare in tutte le richieste HTTP future, impostando l'intestazione se questo valore non è "undefined". |
| context.loadFile(file, 'callback) | Gestisce il caricamento di un file in un oggetto di business DocumentFile .
|
| context.getAddressableUrl(appState, 'withPageId) | Restituisce l' URL dell'applicazione con lo stato opzionale dell'applicazione aggiunto all' URL. Se l'utente torna all'applicazione utilizzando l' URL, viene riportato alla pagina iniziale dell'applicazione.
|
| context.subscribeAppState (callback) | Registra una funzione di callback per ricevere una notifica associata allo stato di applicazione. Una funzione di callback deve essere registrata in un gestore di eventi di carico o di visualizzazione.
|
| context.isWorkflowPXServer() | Verifica se il server è un server Workflow Process Service . Per la vista nella tua applicazione, questo restituisce sempre false. |
Esempio: Connettersi al servizio di traduzione Watson
- Creare una risorsa dell'applicazione "Endpoint definito"; ad esempio, watson. Quindi, aggiungere informazioni host, porta e autenticazione alla risorsa applicativa.
- Utilizzare il seguente codice di esempio per inviare la richiesta xhr a 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));