tourze / json-rpc-caller-bundle
JsonRPC调用方管理
Installs: 416
Dependents: 2
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:symfony-bundle
Requires
- php: ^8.1
- doctrine/dbal: ^4.0
- doctrine/doctrine-bundle: ^2.13
- doctrine/doctrine-fixtures-bundle: ^4.0
- doctrine/orm: ^3.0
- doctrine/persistence: ^3.1 || ^4
- symfony/config: ^6.4
- symfony/console: ^6.4
- symfony/dependency-injection: ^6.4
- symfony/doctrine-bridge: ^6.4
- symfony/event-dispatcher: ^6.4
- symfony/expression-language: ^6.4
- symfony/framework-bundle: ^6.4
- symfony/http-foundation: ^6.4
- symfony/http-kernel: ^6.4
- symfony/lock: ^6.4
- symfony/messenger: ^6.4
- symfony/property-access: ^6.4
- symfony/security-http: ^6.4
- symfony/string: ^6.4
- symfony/yaml: ^6.4 || ^7.1
- tourze/doctrine-indexed-bundle: 0.0.*
- tourze/doctrine-snowflake-bundle: 0.1.*
- tourze/doctrine-timestamp-bundle: 0.0.*
- tourze/doctrine-track-bundle: 0.1.*
- tourze/doctrine-user-bundle: 0.0.*
- tourze/easy-admin-attribute: 0.1.*
Requires (Dev)
- phpstan/phpstan: ^2.1
- phpunit/phpunit: ^10.0
README
A Symfony bundle for managing JSON-RPC API callers, supporting secure client identification, signature verification, IP whitelist, and more.
Features
- Manage JSON-RPC API callers (clients)
- Unique AppID/AppSecret for each caller
- IP whitelist and AES key support
- Signature timeout mechanism
- Audit fields for security and traceability
- Easy integration with Symfony and Doctrine
Installation
Requirements
- PHP >= 8.1
- Symfony >= 6.4
- Doctrine DBAL >= 4.0
Composer
composer require tourze/json-rpc-caller-bundle
Quick Start
- Register the bundle in your Symfony application (if not auto-discovered).
- Run Doctrine migrations to create the
api_caller
table. - Configure your JSON-RPC clients in the database.
Example Usage
// Fetch a caller by AppID $caller = $entityManager->getRepository(ApiCaller::class)->findOneBy(['appId' => 'your-app-id']); // Validate signature, IP, etc. according to your business logic
Data Fixtures
This bundle provides data fixtures for testing and development environments. These can be used to quickly populate your database with different types of API callers.
Available Fixtures
- ApiCallerFixtures: Creates 5 different types of API callers with various configurations
Loading Fixtures
Execute from your project root:
php bin/console doctrine:fixtures:load --group=json-rpc-caller
To preserve existing data, use the --append
option:
php bin/console doctrine:fixtures:load --group=json-rpc-caller --append
Using in Tests
You can use references to these fixtures in your tests:
use Tourze\JsonRPCCallerBundle\DataFixtures\ApiCallerFixtures; use Tourze\JsonRPCCallerBundle\Entity\ApiCaller; // Get the default caller reference $defaultCaller = $this->getReference(ApiCallerFixtures::DEFAULT_CALLER_REFERENCE, ApiCaller::class);
For more information, see src/DataFixtures/README.md
.
Documentation
- Entity:
ApiCaller
(see ENTITY_DESIGN.md) - Configuration: Standard Symfony bundle config
- Repository:
ApiCallerRepository
Contribution
- Submit issues or pull requests via GitHub
- Follow PSR coding standards
- Add tests for new features
License
MIT License © tourze
Changelog
See CHANGELOG.md for details.