Connect your apps to ProcessWire! This module helps you to create api-endpoints, to which an app or an external service can connect to.
Connect your apps to ProcessWire CMS!
This module helps you to create an api, to which an app or an external service can connect to.
- Simple routing definition
- Authentication - Three different authentication-mechanisms are ready to use.
- Access-management via UI
- Multiple different applications with unique access-rights and authentication-mechanisms can be defined
- 1: Home, Installation & Quickstart
- 2: Defining Applications
- 3: Creating Endpoints
AppApi can be installed like every other module in ProcessWire. Check the following guide for detailed information: How-To Install or Uninstall Modules
The prerequisites are PHP>=7.2.0 and a ProcessWire version >=3.93.0. However, this is also checked during the installation of the module. No further dependencies.
- Fixes an issue with the constructor signature of the modules AppApiException class (by @twinklebob, thanks for PR )
- Fixes an issue with the error-handler, which made it mistakenly catch errors that should have been ignored via @ operator (Thanks to @eelke)
- Switched from
$_SERVER['REQUEST_URI']for reading the base-url, because ProcessWire's internal function transferred everything to lowercase
- Fixes an error that occurred when something other than an array was to be output as response
- Fixes critical issue "incorrect integer value" that happened in some db-configurations
- Improved AppApi-dashboard
- Allow multiple levels to routing config (by @twinklebob, thanks for PR )
- Allow requests without an api-key: You can now mark an application as "default application". If you did so, every request without an apikey will be linked with that application.
- You can now set a custom response-code in case of success. Simply include your response-code number on key "responseCode" in your result-array.
- Optional access-logging: You can enable access-logging in the module's configuration. After that, every successful request will be logged with it's application-id, apikey-id and token-id.
- Added hooks to all essential functions - that should enable you to customize the module's behavior even more. E.g. you could add custom logging on a hook, if you need that
- Database-scheme does not need foreign-key constraints any more. That should fix @thomasaull 's issue with db-backups. After the update, you must remove the constraint manually because I did not find a way to remove the foreign key safely in all database-environments.
- Multiple other bugfixes
- Usage of
ProcessPageView::pageNotFound-hook to allow other modules and functions to initialize before the api renders.
- The path to
Routes.phpis now configurable via module's settings (Thanks to @thomasaull and @spoetnik)
- Bugfix in Router.php (Thanks to @thomasaull)
- Documentation improvements
- Changed all auth-routes to the /auth (or /auth/access) endpoints.
- Updated readme and examples
- Rewritten most of the code
- Setup application management ui
- New authentication methods
This project is licensed under the Mozilla Public License Version 2.0 - see the LICENSE.md file for details.