cAPI - Core

What is cAPI?

Code named "Constant API", cAPI is the fantastic result of an effort to mesh the Slim micro-framework with the Joomla Framework / CMS. Once that goal was accomplished, it soon became obvious that just built a Joomla RESTful API was only the beginning! By leveraging Joomla's advanced "pluggable" architecture and robust ACL, cAPI can transform your website into a true middleware service for anything ranging from SQL servers, MongoDB servers and even Microsoft's Active Directory (think of the SSO possibilities!).

How does it work?

cAPI injects the Slim micro-framework into the Joomla application instance, allowing for service route plugins to be built at any level of the event stack. But that's only the beginning!

A Services Control Panel manages the creation of access tokens, Slim framework parameters and API rate limitation rules. This allows an administrator to create tokens mapped to specific Joomla users who in turn are assigned unique group permissions using Joomla ACL.

The service routes are built into Joomla plugins which can be enabled / disabled or assigned access permissions individually. This opens the door for development of feature expansions to the core cAPI services to expose 3rd party Joomla extensions, database querying or even remote LDAP as RESTful JSON APIs.

Release notes

The following release includes a new user method allowing authorized administrators to return a list of all user accounts.

Increment to version 1.3.6.

Create new method GET /user/list/all (getUserListAll)

Previous release - The following update is a minor bug fix to resolve an issue with a missing password field in Swagger UI for the POST / user/edit (create user) method.

Increment version to 1.3.5.1

Add password field to postUserEdit

Remove capi folder from services/libraries as it is not needed for now.

Remove capi from libraries list is there is no currently used services/capi library

What is cAPI?

Code named "Constant API", cAPI is the fantastic result of an effort to mesh the Slim micro-framework with the Joomla Framework / CMS. Once that goal was accomplished, it soon became obvious that just built a Joomla RESTful API was only the beginning! By leveraging Joomla's advanced "pluggable" architecture and robust ACL, cAPI can transform your website into a true middleware service for anything ranging from SQL servers, MongoDB servers and even Microsoft's Active Directory (think of the SSO possibilities!).

How does it work?

cAPI injects the Slim micro-framework into the Joomla application instance, allowing for service route plugins to be built at any level of the event stack. But that's only the beginning!

A Services Control Panel manages the creation of access tokens, Slim framework parameters and API rate limitation rules. This allows an administrator to create tokens mapped to specific Joomla users who in turn are assigned unique group permissions using Joomla ACL.

The service routes are built into Joomla plugins which can be enabled / disabled or assigned access permissions individually. This opens the door for development of feature expansions to the core cAPI services to expose 3rd party Joomla extensions, database querying or even remote LDAP as RESTful JSON APIs.

Release notes

The following update is a minor bug fix to resolve an issue with a missing password field in Swagger UI for the POST / user/edit (create user) method.

Increment version to 1.3.5.1

Add password field to postUserEdit

Remove capi folder from services/libraries as it is not needed for now.

Remove capi from libraries list is there is no currently used services/capi library

Update docblocks to parameterize license, copyright, author and version for build plan.

Temporary update to improve compatibility with CORS on different browsers until a more granular solution is implemented.

Allow for blank or null dlid values.

Create validation rule class JFormRuleCapidlid for capidlid and move function setDlid() into this validation rule.This allows for dlid updates on save and save & close and ensures only validated input is saved.

Resolve bug which prevented the cAPI download ID from properly being assigned to the extension update site.* Remove dedicated capi/dlid library and associated ARS dlid API methods and refactor that functionality into a custom Joomla field for com_services administration.

Update class ServicesTabletoken to match current Joomala development guidelines.

Updated GET /token/manage/all to required either general core.admin or com_services core.admin in order to list all tokens.IMPORTANT: Within Service Control Panel > options > permissions, a group should NOT be given "Configure ACL & Options" privilege if the administrator does not intend that group to have core.admin privilege on com_services.

What is cAPI?

Code named "Constant API", cAPI is the fantastic result of an effort to mesh the Slim micro-framework with the Joomla Framework / CMS. Once that goal was accomplished, it soon became obvious that just built a Joomla RESTful API was only the beginning! By leveraging Joomla's advanced "pluggable" architecture and robust ACL, cAPI can transform your website into a true middleware service for anything ranging from SQL servers, MongoDB servers and even Microsoft's Active Directory (think of the SSO possibilities!).

How does it work?

cAPI injects the Slim micro-framework into the Joomla application instance, allowing for service route plugins to be built at any level of the event stack. But that's only the beginning!

A Services Control Panel manages the creation of access tokens, Slim framework parameters and API rate limitation rules. This allows an administrator to create tokens mapped to specific Joomla users who in turn are assigned unique group permissions using Joomla ACL.

The service routes are built into Joomla plugins which can be enabled / disabled or assigned access permissions individually. This opens the door for development of feature expansions to the core cAPI services to expose 3rd party Joomla extensions, database querying or even remote LDAP as RESTful JSON APIs.

Release notes

cAPI v1.3.4.4 is a bug-fix release.

Increment to version 1.3.4.4

Update function createTokenServicesRestManage() to allow own-token creation by any registered user, while restriction token creation, on behalf of other users, for requesting accounts which have core.create privilege on com_services.

Update docblock for updateTokenServicesRestManage() to include @throws Exception

Configured createTokenServicesRestManage() to allow token creation for: - Self - Other users if core.admin or if core.manage - If not core.admin, requesting user must have access to all groups of target user ID (when userid is defined)

Create method GET /component/model to allow retrieving Model class information only. Helps with introspecting third-party Models which may not have known/standard Model methods.

Include modelMethod and modelMethodArguments (json) request parameters to GET /component/model/data to accommodate different Model class getters.

For GET /component/model/data, use call_user_func_array to call designated $modelMethod on $instance object with any number of arguments passed as JSON encoded array $modelMethodArguments.

Include HTML error codes for invalid requests.

cAPI v1.3.4.1 was a bug-fix release.

Remove unnecessary path debug in GET component/list/all response.

Update URL for "Find out more about cAPI" link.

Change $extension->name to $extension->element

Update to version 1.3.4.1

This release also includes the following:

Improve error trapping for GET component/model/data

Validate getInstance for getComponentModelData

Validate JTable::getInstance input for getComponentTableDataById

Build advanced filtering for getComponentModelData

Implement Joomla ACL per component and individual asset item.

New method getComponentModelData

Complete development on getComponentTableDataById.Include get_class_methods boolean check in URLparameter to allow class methods and associated parameters to be included in the response (requires core.edit for related component).

Update getComponentTableData to getComponentTableDataById.Method will return table data for single ID request.

Create method getComponentTableData

New method getComponentTableFields for returning component fields.

Initial work completed on getComponentListAll. Returns list of all components, along with table and model classes for "site" and "administrator" contexts.

What is cAPI?

Code named "Constant API", cAPI is the fantastic result of an effort to mesh the Slim micro-framework with the Joomla Framework / CMS. Once that goal was accomplished, it soon became obvious that just built a Joomla RESTful API was only the beginning! By leveraging Joomla's advanced "pluggable" architecture and robust ACL, cAPI can transform your website into a true middleware service for anything ranging from SQL servers, MongoDB servers and even Microsoft's Active Directory (think of the SSO possibilities!).

How does it work?

cAPI injects the Slim micro-framework into the Joomla application instance, allowing for service route plugins to be built at any level of the event stack. But that's only the beginning!

A Services Control Panel manages the creation of access tokens, Slim framework parameters and API rate limitation rules. This allows an administrator to create tokens mapped to specific Joomla users who in turn are assigned unique group permissions using Joomla ACL.

The service routes are built into Joomla plugins which can be enabled / disabled or assigned access permissions individually. This opens the door for development of feature expansions to the core cAPI services to expose 3rd party Joomla extensions, database querying or even remote LDAP as RESTful JSON APIs.

Release notes

cAPI v1.3.3 includes a bug fix for the Download ID component parameter and how it populates extra_query field in the update_sites table. It's likely that the previous couple releases may not automatically update via the Joomla Updater (even with your Download ID configured). If that is the case, you should download and install cAPI Core v1.3.3, manually.

This release includes the following:

Remove extraneous tag_link_class parameter

Increment cAPI version to 1.3.3

Resolve bug with successful updating of dlid in update_sites table, extra_query field when editing the Download ID parameter in com_services component options.

What is cAPI?

Code named "Constant API", cAPI is the fantastic result of an effort to mesh the Slim micro-framework with the Joomla Framework / CMS. Once that goal was accomplished, it soon became obvious that just built a Joomla RESTful API was only the beginning! By leveraging Joomla's advanced "pluggable" architecture and robust ACL, cAPI can transform your website into a true middleware service for anything ranging from SQL servers, MongoDB servers and even Microsoft's Active Directory (think of the SSO possibilities!).

How does it work?

cAPI injects the Slim micro-framework into the Joomla application instance, allowing for service route plugins to be built at any level of the event stack. But that's only the beginning!

A Services Control Panel manages the creation of access tokens, Slim framework parameters and API rate limitation rules. This allows an administrator to create tokens mapped to specific Joomla users who in turn are assigned unique group permissions using Joomla ACL.

The service routes are built into Joomla plugins which can be enabled / disabled or assigned access permissions individually. This opens the door for development of feature expansions to the core cAPI services to expose 3rd party Joomla extensions, database querying or even remote LDAP as RESTful JSON APIs.

Release notes

The release of cAPI v1.2.8 includes new Joomal Tag methods to allow create / read / update / delete and tag search. The next version of cAPI will handle tag assignment to com_content items.

A new menu item view has been added to com_services to allow site admins to create Swagger UI interfaces for any Swagger JSON definition URLs.

What is cAPI?

Code named "Constant API", cAPI is the fantastic result of an effort to mesh the Slim micro-framework with the Joomla Framework / CMS. Once that goal was accomplished, it soon became obvious that just built a Joomla RESTful API was only the beginning! By leveraging Joomla's advanced "pluggable" architecture and robust ACL, cAPI can transform your website into a true middleware service for anything ranging from SQL servers, MongoDB servers and even Microsoft's Active Directory (think of the SSO possibilities!).

How does it work?

cAPI injects the Slim micro-framework into the Joomla application instance, allowing for service route plugins to be built at any level of the event stack. But that's only the beginning!

A Services Control Panel manages the creation of access tokens, Slim framework parameters and API rate limitation rules. This allows an administrator to create tokens mapped to specific Joomla users who in turn are assigned unique group permissions using Joomla ACL.

The service routes are built into Joomla plugins which can be enabled / disabled or assigned access permissions individually. This opens the door for development of feature expansions to the core cAPI services to expose 3rd party Joomla extensions, database querying or even remote LDAP as RESTful JSON APIs.

Release notes

Details coming soon!

IMPORTANT

Certain breaking changes had to be made to the naming convension of the a couple extenions in the core package, requiring a full uninstall before reinstalling v1.1.