softspring / cms-api-plugin
REST API plugin for Armonic CMS.
Package info
github.com/softspring/cms-api-plugin
Type:sfs-cms-plugin
pkg:composer/softspring/cms-api-plugin
Requires
- php: >=8.4
- nelmio/api-doc-bundle: ^5.0
- softspring/cms-bundle: ^6.0@dev
- softspring/cms-sections-plugin: ^6.0@dev
- softspring/media-bundle: ^6.0@dev
- symfony/dependency-injection: ^6.4 || ^7.4 || ^8.0
- symfony/framework-bundle: ^6.4 || ^7.4 || ^8.0
- symfony/http-foundation: ^6.4 || ^7.4 || ^8.0
- symfony/http-kernel: ^6.4 || ^7.4 || ^8.0
- symfony/routing: ^6.4 || ^7.4 || ^8.0
Requires (Dev)
- ergebnis/composer-normalize: ^2.50
- friendsofphp/php-cs-fixer: ^3.94
- phpstan/phpstan: ^2.1
- phpunit/phpunit: ^12.5
- rector/rector: ^2.3
- symfony/yaml: ^6.4 || ^7.4 || ^8.0
This package is auto-updated.
Last update: 2026-06-25 10:30:18 UTC
README
Experimental package: this plugin is in active development and its route contracts, response payloads, permissions, and extension points may change before a stable release.
softspring/cms-api-plugin exposes selected Armonic CMS configuration and content data through read-only JSON HTTP endpoints.
It is intended for projects that need a controlled REST API for CMS structure, published content, routes, menus, blocks, sections, and media.
Installation
composer require softspring/cms-api-plugin:^6.0@dev
The plugin requires softspring/cms-bundle, softspring/cms-sections-plugin, softspring/media-bundle, Symfony FrameworkBundle, and NelmioApiDocBundle.
Register the bundle if Symfony Flex does not do it automatically:
// config/bundles.php return [ Softspring\CmsApiPlugin\SfsCmsApiPlugin::class => ['all' => true], ];
Import the routes under the prefix chosen by the host application:
# config/routes/sfs_cms_api.yaml sfs_cms_api: resource: '@SfsCmsApiPlugin/config/routing/api.yaml' prefix: /api/cms
Protect the imported route prefix with the host application's firewall or gateway rules.
Usage
The plugin exposes read-only JSON endpoints for CMS configuration and CMS instances.
Configuration endpoints include:
/sites/content-types/blocks/menus/layouts/modules/media-types
Instance endpoints include:
/content/routes/menus/blocks/sections/media
Most list endpoints support query parameters such as query, site, locale, publishedOnly, limit, or includeRawConfig depending on the resource.
Features
See FEATURES.md for the functional scope of this package.
Contributing
See CONTRIBUTING.md.
Report issues and send Pull Requests
Security
See SECURITY.md.
License
This package is free and released under the AGPL-3.0 license.