Skip to content

v9.0.0

Latest

Choose a tag to compare

@CarlosGude CarlosGude released this 24 Sep 18:25
· 2 commits to main since this release

URL parameters now come exclusively from context. The engine preserves every body field, including fields whose names match URL placeholders.

Breaking change and migration

For path: /employees/{id}, pass the identifier explicitly in context:

use IntegrationEngine\Core\Contract\Action\DefaultActionContext;

$engine->send(
    actionName: UpdateEmployeeAction::getName(),
    context: DefaultActionContext::create(['id' => 42]),
    body: UpdateEmployeeBody::create(['name' => 'New Name']),
);

This sends PUT /employees/42 with {"name":"New Name"}. If the API also requires id in the payload, include it explicitly in the body; it will be preserved. A missing context parameter fails before HTTP even when the body contains a matching field.

Documentation and migration examples have been updated. The demo already supplies its URL parameters through context.

Other changes since v8.0.4

  • Improved landing-page mobile layout and prevented horizontal overflow.
  • Fixed contract-test path repository version resolution.

Validation

  • make qa: code style, static analysis and 871 tests (2,461 assertions) passed.
  • HTTP regression tests verify payload preservation and rejection of missing context parameters before sending a request.