Files
openstapps/README.md
2020-07-15 09:11:40 +02:00

41 lines
2.0 KiB
Markdown

# minimal-connector
## Prerequisites
* `node` and `npm` installed
* a backend, which is running locally (on http://localhost:3000)
## How to get started
To install all required `npm` packages:
```shell script
npm install
```
To prepare the script to be executed, run:
```shell script
npm run build
```
To start the plugin, you need to execute the code in "CLI" script:
```shell script
node lib/cli.js run <backendURL> <pluginName> <routeName> <URL> <port>
e.g.:
node lib/cli.js run http://localhost:3000 minimal-plugin minimalPlugin http://localhost 4000
```
## Creating your own plugin
* Modify the default values in `cli.ts` to your needs:
* update the name
* update the port
* update the route
* update your request and response names (You need these in a bit)
* Rename the `minimal-plugin.ts` and the `MinimalPlugin` class to a more suitable name and adjust the imports in other files
* Delete the `sum` function in `minimal-plugin.ts` and write your own logic inside the `onRouteInvoke` function
* Define the layout of your http requests and responses inside the `/plugin/protocol` folder. The names of the interfaces
need to be the same as the request and response names you defined in the `cli.ts`
## Code structure
Folder `src` contains:
* Reference implementations for CLI and a plugin
* [/cli.ts](src/cli.ts)
* minimal CLI to start your connector, that uses CLI-args, so that there are no hard coded values for configuration
* will execute the specified connectors and push the data to the backend
* [/common.ts](src/common.ts) blank file for commonly used values across files to put in
* [/plugin/minimal-connector.ts](src/plugin/minimal-plugin.ts) minimal plugin class with some example logic
* [/plugin/protocol/request.ts](src/plugin/protocol/request.ts) the interface for any incoming http requests
* [/plugin/protocol/response.ts](src/plugin/protocol/response.ts) the interface for responses by the plugin to the backend
* [/plugin/protocol/tsconfig.json](src/plugin/protocol/response.ts) required by schema generator