| # apidVerifyAPIKey |
| |
| This core plugin for [apid](http://github.com/30x/apid) responds to |
| [apidApigeeSync](https://github.com/30x/apidApigeeSync) events and publishes an API that allows clients to |
| deploy and update a locally configured gateway. |
| |
| ## Functional description |
| |
| This plugin simply tracks counters based on called URIs: |
| |
| * `GET /deployments/` - retrieve current deployment |
| * `POST /deployments/` - update deployments |
| |
| See [apidGatewayDeploy-api.yaml]() for full spec. |
| |
| ## Building and running standalone |
| |
| First, install prerequisites: |
| |
| glide install |
| |
| To run an apid test instance with just this plugin installed, change to the `cmd/apidGatewayDeploy` folder. |
| From here, you may create an executable with: |
| |
| go build |
| |
| Alternatively, you may run without creating an executable with: |
| |
| go run main.go |
| |
| Command line options: |
| |
| * -deployments <file path> |
| |
| If you use the `-deployments` option, the server will start using a clean database that contains only the |
| deployments contained in the file specified. |
| |
| The file should be the JSON for an array of deployments. JSON format is: |
| |
| [ |
| { |
| "id": "", |
| "scopeId": "", |
| "created": "", |
| "createdBy": "", |
| "updated": "", |
| "updatedBy": "", |
| "configuration": { |
| "key": "value" |
| }, |
| "bundleConfiguration": { |
| "key": "value" |
| }, |
| "displayName": "", |
| "uri": "" |
| } |
| ] |
| |
| Notes: |
| * id must be unique |
| * uri should point to a bundle file |
| |
| Once the process is running, you should be able to manually give the plugin's API a whirl... |
| |
| curl -i localhost:9000/deployments/ |
| curl -i -X POST localhost:9000/deployments -d '{ ... }' |
| |
| The following may be interesting env vars for configuration: |
| |
| * APID_API_PORT |
| |
| ## Running tests |
| |
| To run the tests, just run: |
| |
| go test |
| |
| To generate coverage, you may run: |
| |
| ./cover.sh |
| |
| Then open `cover.html` with your browser to see details. |