All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Basic Authentication strategy added
- Bearer Authentication strategy added
- Request parameters with same name but different $ref should not override each other
- ext- in generated clients composer.json is added according to what is actually being used
- Changed default php-cs-fixer configuration to remove blank lines after class opening, according to PSR12 (
no_blank_lines_after_class_opening
)
- Remove virtual package dependency (psr/http-client-implementation)
- Changed default php-cs-fixer configuration to add blank line after opening tag, according to PSR12 (
blank_line_after_opening_tag
)
- Support for free-form object in response
- Added
ext-intl
to composer.json. It was missing since 7.0.0.
- Using
grapheme_strlen
to properly count string lengths.
- The array of serializers in BodySerializer depends on both requests and responses content type
- Fix preg_match pattern by adding a slash (/) as a delimiter.
enum
type are not anymore validated from generated client side.
nullable: true
for mandatory $ref was not checking for null before trying to map
- Support for
application/vnd.api+json
MIME type.
- Minimum and Maximum constraints work for floats
- Api Client Generator version to README generation
- Support for
default
property on required request parameters.
- Support for
license
info. Use it in the default composer.json tpl.
- Support for
mixed
parameter type - Support for anyOf
mixed
parameter type
mixed
arrays rendered incorrectly- Wrong typehint in case of nullable arrays
- Support for
minimum
,maximum
,exclusiveMinimum
,exclusiveMaximum
,minItems
,maxItems
,pattern
,maxLength
,minLength
validations
- Example generated with 7.4
- Only content type serializers which are used are included
- By default, the PHP version used in the generated client is 7.4.
- Acceptance test to generate example from canonical pet store OpenApi specification
- Content-type argument if multiple specified for request
- Literal type JSON response body
- Multiple content-type per request and response with the same schema allowed
- Changed non-existing successful response error to a warning
- Nullable mandatory DateTime properties in schema now work correctly without doing
new DateTimeImmutable(null)
- Proper nullable typehint and default value in properties for 7.4 schemas to avoid non initialized errors
- Changed default php-cs-fixer configuration to remove superfluous docblocks, to improve generated code readability
- Makefile with standard routines to easy development / contribution (run tests, analyse code, fix code style)
- Guzzle 6/7 dependency removed altogether in favor of PSR-18 interfaces for Http Client
- Breaking change!
*ClientFactory
does not accept URI and Guzzle configuration anymore, but rather PSR-18 implementation - Guzzle 6/7 CookieJar dependency removed in favor of simplified CookieJar class
DateTimeInterface
serialization inQuerySerializer
- Query parameters which implement
JsonSerializable
will be converted accordingly.
- Fix collections
toArray
docblock
- Schemas implement
JsonSerializable
to be easily encoded with nativejson_encode
- Fix/improve Progress Bar output
- Collection methods use property
items
directly, without callingtoArray
- Fix
Content-type
header handling.
- Serialize items from collection manually, since
json_encode
won't calltoArray
automatically as it used to do withjsonSerialize
- Send
RequestInterface
instance to Guzzle instead ofServerRequestInterface
- Request object is immutable so must be assigned back when using
with
methods
- Progress bar added
- PHP version dependant syntax resolution
- PHP version 7.2, 7.3 support
- Service provider generator added
- Content-type property added to the Request
- Request mapper generator added
- Specification file is copied to the client directory
- Breaking change! getResponse request renamed to sendRequest and return PSR7 ResponseInterface instead of DoclerLabs\ApiClientBase\Response\Response
- Most of the static code copied to the client instead of depending on docler-labs/api-client-base
- Headers removed from default Guzzle config
- Http client implementation abstracted behind PSR-17 interface
- Http message implementation abstracted behind PSR-7 interface
- Container implementation abstracted behind PSR-11 interface
- Source directory name is configurable
- Json and form-encoded serializers instead of built-in json
- SerializableInterface added
- ResponseMapper renamed to SchemaMapper
- Client dependencies initialization moved to service provider
- OperationId is no longer mandatory
- CS Fixer fails on invalid generated PHP file
- Nullable fields schema mapper fix
- Naming collisions in embedded objects handled
- docler-labs/api-client-base updated to 3.0.0
- Response 'data' key handling from
Response
.
- docler-labs/api-client-base updated to 2.0.0
- The
getResponse
method exposed in the generated Client class. Could be used to retrieve response headers.
- README.md meta template
- Any number of allOf schemas allowed
- allOf schemas joined to one schema without inheritance
- Response mapper invocation reused in the client factory
- Empty object handling
- Fix for date and date-time fields parsing
- Initial API client generator release