Http server is an express http server that exposes the functionality of the grid client over http requests.
yarn add @threefold/grid_http_server- Clone the repository
git clone https://github.com/threefoldtech/tfgrid-sdk-ts.git- Install it
yarn installAdd network and account's mnemonics in config.json in server directory before running the server.
{
"network": "<network environment dev, qa or test>",
"mnemonic": "<your account mnemonics>",
"storeSecret": "", // secret used for encrypting/decrypting the values in tfkvStore
"keypairType": "sr25519" // keypair type for the account created on substrate
}- User from the outside sends an http post request(with payload) to the HTTP server.
- Http server checks if there is a post request that its endpoint is registered on the express http server.
- If this endpoint is registered, the http server will pick up this post request.
- Http server starts to execute it using the Grid3 client.
- After finishing the execution, the Http server puts the result back to the user once it's ready.
yarn startyarn grid_http_serverYou can also use another configuration file by using --config or -c option.
yarn grid_http_server -c pathToConfigFile.json
# or
yarn grid_http_server --config pathToConfigFile.jsonAll APIs supported can be executed by sending a post request to the server. To execute a method on a module, the module name followed by the method name should be sent on the request endpoint to be like http://localhost:3000/{module}/{method} and the arguments should be sent in request's body.
There is a ping endpoint as well to make sure that the server is up and running http://localhost:3000/ping
This is an example of getting a twin.
Put the following content in a file test_twin.ts
import axios from "axios";
async function main() {
const payload = { id: 1 };
axios
.post("http://localhost:3000/twins/get", payload)
.then(function (response: any) {
console.log(response);
})
.catch(function (error: any) {
console.log(error.response.data);
});
}
main();And then run this file by yarn run ts-node --transpileOnly test_twin.ts
see more examples in modules