Axway API-Builder is a very flexible low-code no-code framework that helps customers to create or optimize APIs for an API-Management governance layer by:
- orchestrating system of record APIs into a business oriented API
- connect to different Cloud- or On-Premise applications
- connect to databases to create CRUD APIs in minutes
- transform / mediate downstream APIs
Watch this video to learn more about API-Builder or just get started.
The underlying framework of API-Builder is Node.js using a bunch of
NPM packages.
This repository is used to maintain community packages following the process
described below.
There are a number of benefits why it makes sense to share your plugin:
- Axway takes care about this repository to test, release and publish your package
- upon Axway decision the plugin gets integrated into the API-Builder Plugin UI for simple installation and discovery
- Broader community and Axway will help on a best-effort basis to improve your plugin
- Quality-Gate for changes on existing plugins
- Axway helps on a best-effort basis to support the community plugins
Once a plugin package has been approved by the Axway API-Builder core team it will appear for installation in the API-Builder Admin UI. That way, it is discoverable by all developers with the same organization or external organization:
Please note that API-Builder Plugins in this repository are maintained by the community. The current maintainer is listed in package.json
and will address the pull requests and issues opened for that API-Builder plugin. Additionally, Axway will assist on a best-effort basis, and will support the current maintainer whenever possible. When submitting a new plugin, please indicate in the Pull-Request that you're willing to become the maintainer. For current maintainers, we understand circumstances change. If you're no longer able to maintain a plugin, please notify us so we can find a new maintainer or mark the plugin as orphaned. If you have any questions about the process, don't hesitate to contact us.
API-Builder supports different kind of plugins. Learn more in the Axway documentation.
A flow node can be used as part of an API-Builder flow to process any kind of
data available in the flow context. For instance create an MD5 Hashsum based on a
header variable, etc.
Use the Flow-Node SDK to create a new flow node.
The actual flow-node connectors are based on the Swagger-Flow-Node, that allow you
to create a Connector based on a Swagger-Definition.
Learn more in the documentation and just review existing Flow-Connectors (name api-builder-plugin-fc*
).
A Data-Connector is the most sophisticated plugin. They provide Data-Models based on sources (e.g. databases) to create CRUD-APIs or to be used as part of a flow. Please check existing Data-Connectors or create an issue if you need help for another data-connector.
After you have implemented and tested your plugin locally, you can share that plugin with the API-Builder community using this repository.
That way, you make it discoverable in the API-Builder UI, you can leverage the community to improve it and Axway supports you on a best-effort basis.
We are using GitHub Pull-Requests to allow you to contribute and the only thing you need is a GitHub account.
If you found an issue or you have improved an existing plugin yourself, we highly appreciate if you make that changes available to the community as well. It is as simple as creating a Pull-Request as described in step 9 below.
- Create a fork of this repository, which basically creates your own copy still linked to the original repository
- We recommend to clone your forked repository to your local disc (e.g. using GitHub Desktop)
- instead of working with the GitHub WebUI only
- Create a unique folder for your plugin
- This is what
axway builder plugin init ...
created for you
- This is what
- Plugin code
- The structure is as created by the
plugin init
command - Review existing plugins to understand the structure
- Please provide unit tests for your plugin wherever possible
- The structure is as created by the
- Update the package.json
- Especially the fields:
- name: should start with:
@axway-api-builder-ext/api-builder-plugin....
- version: Stable has a version 1.x.x, all other something 0.x.x
- description: Provide a meaningful description. This will appear in the API Builder UI "Plugins" page
- author: Add your GitHub ID or email address (this is used to assign issues/pull requests)
- homepage: Should point to your unique folder within this repository
- keywords: Add more keywords to make it easier to discover your plugin -engines.apibuilder: Documents range of API Builder versions that the plugin is compatible with. Remember that modifying this to increase the minimum compatible API Builder version is a breaking change, so update the major version of your plugin when you do so.
- name: should start with:
- There might be more changes needed depending on what your plugin does
- Especially the fields:
- Create new GitHub actions based on the templates
.github/workflows/*_template
- these workflows are used to automatically tests and release/publish your plugin
- Replace all occurrences of
NAME_OF_YOUR_PLUGIN
in both workflow files with a valid name not longer than 20 characters - Replace all occurrences of
THE_FOLDER_NAME_OF_YOUR_PLUGIN
with the folder name of your plugin - You may skip this step and we will add the workflows for you
- Provide a README.md
- What your plugin does
- How to use it (e.g. add images, examples, etc.) to make it easy for developers to understand it
- Mention potential limitations/caveats/known issues
- Create a package-lock.json
- Run
npm install
to create apackage-lock.json
- This is required to lock down used modules before testing and releasing it
- Run
- Commit/Push your changes to your forked repository and finally create a Pull-Request
- We take it from there, review your plugin or changes you propose
- if required, we propose or add further changes or just start a conversation when having questions
- Finally the changes are merged into the master branch of this repository
- Release/Publish the plugin
- we will test/release/publish the plugin as an NPM module using the GitHub-Actions workflows
- the API-Builder core team will ultimately decide if the plugin get listed in the next release
To report issues or get help, please create an issue here on GitHub.