carlosgude/integration-engine
IntegrationEngine standardizes external API integrations in Symfony: each endpoint is a predictable Action with a Request and Response DTO + Mapper. Includes scaffolding commands to generate integrations and actions, keeping HTTP/mapping logic consistent and maintainable.
{Name}/Action/Request/, Response/, Dto/) reduces cognitive load for developers, making onboarding and maintenance easier. This is particularly valuable for teams with multiple integrations.Gateway pattern (e.g., MyApiGateway) acts as a buffer between domain models and external API changes, minimizing breaking changes in the domain layer.make:integration command generates all necessary classes (Action, Mapper, Response) interactively, reducing setup time.ClientAdapterInterface, making it adaptable to diverse API types.integration_engine.yaml) for base URLs, auth, and action mappings reduces hardcoding and improves maintainability.HttpClient, Cache, or DI components).GraphQLClientAdapter does not support batching (sendMany), requiring custom adapters for concurrent GraphQL requests.DynamicAuthHandler and cache eviction logic.HttpClient or Cache?rest adapter suffice, or is a custom BatchClientInterface implementation needed?TESTING.md guide, but teams may need to adapt their test suites to mock the IntegrationRegistry or IntegrationEngine.LoggerInterface, so existing logging infrastructure can be leveraged.Gateway) pattern will help, but teams must discipline themselves to update gateways rather than domain models directly.HttpClient (for REST)Cache component (for token caching)Serializer (for DTO mapping, if used)make:integration to scaffold the integration and compare the generated code to existing clients.Gateway to verify the ACL pattern works for the domain model.IntegrationRegistry and IntegrationEngine.Gateway → Integration → external API).HttpClient v6.x).array_key_first, Stringable).Gateway classes without modification.HttpClient or Cache, ensure namespace collisions are avoided.composer require carlosgude/integration-engine.integration_engine.yaml with base URLs and auth settings.make:integration to generate boilerplate for each API.Action, Mapper, and Response classes as needed.Gateway classes to map API DTOs to domain models.send()) and batch requests (sendMany()).Action, Mapper, or Gateway classes, not domain models or business logic.PathResolutionException, IntegrationGeneratorException) and integrates with Symfony’s error handler.LoggerInterface, allowing teams to log API calls, failures, and performance metrics.README.md, DOCUMENTATION.md, and a demo repository (integrationEngine-use-example), though some topics (e.g., custom adapters) may require deeper exploration.sendMany() method enables parallel API calls for the rest adapter, improving throughput for batch operations. GraphQL requires a custom adapter for true concurrency.How can I help you explore Laravel packages today?