Se state sviluppando delle web api con Foundation e non le avete ancora pubblicate su di un server pubblico per utilizzarle da Instant Developer Cloud, perché non avete ancora implementato un sistema di autenticazione, oppure non avete ancora il server, le potete raggiungere con il Cloud Connector.
Oppure sono semplicemente web api della rete interna non pubblicate.
Naturalmente se le vado ad interrogare mediante il Cloud Connector da codice non le postro importare con la funzione apposita dell’ide di Cloud.
Vediamo lo scenario.
Abbiamo un progetto di Instant Developer Foundation che espone le web api sul di un portatile nella mia rete locale.
Abbiamo un progetto di Instant Developer Cloud dal quale vogliamo utilizzare le web api Foundation.
Installiamo il Cloud Connector sul portatile (GitHub - progamma/cloud-connector) e lo configuriamo.
Questo il config.json di configurazione per la parte file system:
"fileSystems": [
{
"name": "pabloFileSystemTemp",
"path": "C:\\users\\pablo\\temp",
"permissions": "rw",
"APIKey": "367714c0-e044-4477-a4c3-03ca340daadb"
}
]
Il codice da utilizzare su Cloud per accedere sarà:
App.BE.WebApiLocal.getInfoSupplier = function(app, id)
{
// Imposto il remote file Systema a cui accedere mediante il Cloud Connector
let rfs = new App.RemoteFS(app, "pablo-pc-nwind-db://pabloFileSystemTemp", "367714c0-e044-4477-a4c3-03ca340daadb");
let url = "http://192.168.0.32:1308/NuovaApplicazioneWeb/NuovoComponente/Suppliers/" + String(id);
let u = rfs.url(url);
let retInfo = {};
//
try {
// Eseguo una get per leggere le informazioni
let res = yield u.get();
console.log("PG - WebApiLocal.getInfoSupplier - res", res);
//
// Tutto ok - nel body ho il documento Supplier
if (res.status === 200) {
let sup = JSON.parse(res.body);
console.log("PG - getInfoSupplier - sup", sup);
retInfo = {supplier : sup, error : ""};
}
//
// Richiesta errata - nel body ho una stringa di errore
if (res.status === 400) {
retInfo = {supplier : null, error : res.body};
}
//
// Documento non trovato - nel body ho una stringa di errore
if (res.status === 404) {
retInfo = {supplier : null, error : res.body};
}
//
if (res.error) {
console.log("PG - res.error", res.error);
retInfo = {supplier : null, error : res.error};
}
}
catch (err) {
// Il Cloud Connector non è stato trovato
console.log("PG - err.stack", err.stack);
retInfo = {supplier : null, error : err.stack};
}
console.log("PG - WebApiLocal.getInfoSupplier - retInfo", retInfo);
//
return retInfo;
};