API client for NeptuneLabs FSI Server
FSI Server API Client JS offers developers a flexible interface to control the REST OpenAPI of FSI server.
Uploading, deleting, modifying, creating and managing files and directory structures, as well as complex tasks can be easily accomplished using this high level API client. The FSI Server web interface uses this API client to communicate with FSI Server. You can see the API in action on this demo FSI Server.
Install with npm:
npm install @neptunelabs/fsi-server-api-client
Install with yarn:
yarn add @neptunelabs/fsi-server-api-client
There are two ways of using the API:
- a promise based API
- a queue API
Queueing command results in a far more readable code while using the promise-based API gives you more flexibility, but a deeply nested code.
Let's have a look at an example which just logs in and out of FSI Server:
const fsiServerApiClient = require("@neptunelabs/fsi-server-api-client");
const client = new fsiServerApiClient.FSIServerClient('https://my.fsi-server.tld');
client.login("user", "password")
.then(() => {
client.logout()
.catch(console.error);
})
.catch(console.error);
const fsiServerApiClient = require("@neptunelabs/fsi-server-api-client");
const client = new fsiServerApiClient.FSIServerClient('https://my.fsi-server.tld');
const queue = client.createQueue({continueOnError: false});
queue.login("user", "password");
queue.logout();
// the following line actually starts the execution
queue.runWithResult();
Besides the code style, the queue API simplifies working with many files, because you can run commands against all files selected by the queue.
const queue = client.createQueue({continueOnError: false});
queue.login("user", "password");
// recursively read all files and folder entries in images/foo
queue.listServer("images/foo", {recursive: true});
// recursively read all files and folder entries in images/bar
queue.listServer("images/bar", {recursive: true});
//rename each collected file
queue.batchRename((entry) => {
return (entry.type === "file") ? "renamed_" + entry.src : entry.src;
});
queue.logout();
queue.runWithResult();
const queue = client.createQueue({continueOnError: false});
queue.login("user", "password");
queue.listServer("/path/to/images", {recursive: true});
queue.batchDownload("/target/path/", {
flattenTargetPath: false,
overwriteExisting: true
});
queue.logout();
queue.runWithResult();
const queue = client.createQueue({continueOnError: false});
queue.login("user", "password");
queue.listLocal("/local_path/to/images", {
fnFileFilter: FSIServerClient.FN_FILE_FILTER_VALID_IMAGES,
recursive: true
});
queue.batchUpload("/images/", {
flattenTargetPath: false,
overwriteExisting: true
});
queue.logout();
queue.runWithResult();
A repository containing various examples how to use this API in TypeScript is available here.
Please refer to the wiki for a complete API documentation.