Skip to content
BeAPI Framework is an 'Enterprise Ready' API Automation Framework. It implements the NEW API Pattern ( ) allowing for abstraction of the communication layer from the business logic layer thus improving scalability, speed and synchronization of I/O state in distributed systems as well as the abilit…
Branch: master
Clone or download
Latest commit 7f3b4a5 Oct 18, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Update FUNDING.yml Oct 16, 2019
docs chasnges for cors and networkRoles May 13, 2019
gradle/wrapper saving changes Oct 11, 2019
grails-app test Oct 18, 2019
spring cleanup Feb 28, 2019
src/main minor fixes Oct 3, 2019
.classpath working plugin; saving and testing Jun 11, 2015
.gitignore Update .gitignore Mar 21, 2016 Create Dec 28, 2018 Create Dec 28, 2018
LICENSE Update LICENSE Oct 16, 2019 Update Oct 18, 2019 Update May 23, 2019
build.gradle saving changes Oct 11, 2019
buildConfigScript.groovy first commit Jun 10, 2015
createBuildProperties.groovy updating ci/cd Oct 2, 2019 saving changes Oct 11, 2019
gradlew minor changes Sep 10, 2019
gradlew.bat minor changes Sep 10, 2019

alt text

BeApi(tm) Api Framework ( )

If you enjoy our work, please click our sponsor button at the top of the page

Benchmarks : view

Latest Version: 1.4.26

Stable/Latest Profile Version: 1.4.26(

Documentation -

Forums -

Frontend Implementation -


The BeAPI Framework is a full featured api automation framework providing a FULL API automation with an AVERAGE response time per call of 0.27 milliseconds per request (Google requires their calls to be UNDER 200 ms).

Some features include:

  • Automated Batching: all endpoints are batchable by default with AUTH ROLES assignable to restrict access. Batching can also be TOGGLED to turn this feature ON/OFF per endpoint.

  • Built-in CORS: Cross Origin Request handling secures all endpoints from domains that you don't want. Added capability for securing different network groups

  • JWT Tokens: JWT Token handling for Javascript frontends to allow or better abstraction of the VIEW layer

  • Automated Web Hooks: Enables secured Web Hooks for any endpoint so your developers/users can get push notification on updates.

  • Throttling & Rate/Data Limits: Data Limits/Rate limits and Throttling for all API's through easy to configure options

  • Autogenerated APIDocs: Unlike Swagger/OpenApi which shows the ApiDocs regardless of ROLE, APIDocs are autogenerated based on your ROLE thus showing only the endpoints that you have access to.

  • Shared I/O state: Also unlike Swagger/OpenApi, the data associated with functionality for REQUEST/RESPONSE does not exist in TWO PLACES and thus can be synchronized making it moire secure, stable, faster and flexible. You can make changes to your apis, security and definitions on the fly all without taking your servers down.

  • API Chaining(tm): rather than using HATEOAS to make a request, get a link, make a request, get a link, make a request, etc... api chaining allows for creation of an 'api monad' wherein the output from a related set of apis can be chained client side allowing the output from one api to be accepted as the input to the next and so on and be passed with ONE REQUEST AND ONE RESPONSE. It is handled as a type of BATCH call wherein the backend automates the hand-off and processing.

  • Localized API Cache: returned resources are cached,stored and updated with requesting ROLE/AUTH. Domains extend a base class that auto update this cache upon create/update/delete. This speeds up your api REQUEST/RESPONSE x10

  • Built-In Stats Reporting: Statistics on all api calls (and errors) are stored and can be called up at any time for reporting tooling.


Q: How hard is this to implement?
A: BeApi is 'Plug-N-Play'. You dont even have to install the plugin. Implementing for your project is as simple as a one line command:

grails create-app name_of_your_app --profile org.grails.profiles:beapi:1.4.26

Q: How do I implement the listener for IO state webhook on my proxy/Message queue?
A: It merely requires an endpoint to send the data to. As a side project, I may actually supply a simple daemon in the future with ehCache to do this for people.

You can’t perform that action at this time.