Moving validation from Parameter to AbstractCommand
Renaming JsonBodyVisitor to JsonVisitor
Renaming Processor to Validator
Adding min/maxLength, minimum/maximum, and min/maxItems to Parameter to support valida JSON schema
Optimizing schema validation
Getting rid of the Validation component and "Inspector"
Removing custom types from service descriptions
Using a JSON schema based approach to validation and normalization
Adding a lazy building of Parameters for Operaton objects
Using camel case for postFile and postFile
Adding models support to service descriptions
Adding support for $ref overwrites of models registered with ServiceDescriptions
Adding more meta information to service descriptions
Adding data property to operations
Adding service description property to operations. Adding an XML location used to serialize XML requests.
Restructuring how service description based command requests are serialized and how responses are parsed
Adding JSON response parsers
Adding the ability to skip recursive translations on JSON responses
- Adding nested parameter serialization support to json, query, and
post_field locations.
- Removing XML builders and only using JSON/arrays.
- Removing dot notation for classes, filters, and types.
- Updating validation filters to allow callers to get the default option using a static method.
- Removing annotation support from commands and using a static method instead.
Using a default log template when null or an empty string is provided
Removing the next and makesDecision methods from the backoff strategy interfaces.
Using call_user_func in callback strategies so that array() callbacks are supported.
Listening for request.sent with the LogPlugin so that even error responses are logged.
Renaming getExponentialBackoffInstance to getExponentialBackoff
Adding a shared MessageFormatter that expands log templates. Using in
LogPlugin and in BackoffLogger.
Making LogPlugin simpler and easier to customize.
- Removing caching of factory classes from the default abstract factory.
This is usually only called once.
- Removing the cached instance of a ServiceBuilderAbstractFactory in the
ServiceBuilder::factory. This is usually only called once.
- Returning instantiated factories rather than class names when using the
abstract factory, allowing for modifying return values in child classes.
- Using the union of two arrays rather than an array_merge when extending
service builder services and service params.
- Ensuring that a service is a string before doing strpos() checks on it
when substituting services for references in service builder config files.
- Services defined in two different config files that include one another will
by default replace the previously defined service, but you can now create
services that extend themselves and merge their settings over the previous.
- The JsonLoader now supports aliasing filenames with different filenames. This
allows you to alias something like '_default' with a default JSON
configuration file.