- Updated Tymon's JWTAuth to the latest version,
0.4.1.
- Can now use
RateLimiter::setRateLimiterto change the key used to rate limit requests from the clients IP.
- Made the trace readable by exploding on the EOL character.
- API filters are now applied before any other filters to ensure they are run first.
- Request and response instances are correctly set on the formatter for exception responses.
- Scopes set on groups are now parsed correctly.
- Routes are now added to the correct groups and matched correctly.
- OPTION requests are now handled correctly for API routes so preflights will no longer fail.
- Eager loading for Fractal transformers now checks the available includes before attempting to load.
- Raw internal requests now have the content run through any transformers as was initially described when implemented.
ResponseFactory::collectionis now type-hinted toIlluminate\Support\Collection.- Refined the handling of route matching.
Dingo\Api\Transformer\TransformableInterfaceis now deprecated. It's recommended you use the Response Builder.
- Fixed bug where some server variables were not being set properly.
- Fixed inconsistent response when returning an empty collection that is meant to be transformed.
- Fixed potential HHVM bug caused by
json_encodebeing run on certain elements. Debug mode now returns trace as a string.
Symfony\Component\HttpKernel\Exception\BadRequestHttpExceptionis now thrown when invalid API version is requested.- Responses with HTTP error status codes will now throw a
Dingo\Api\Exception\InternalHttpExceptionwhen requested internally.
- Fixed bug where using the
InputorRequestfacade prior to internal requests resulted in unexpected input behaviour. - Fixed recursive call to the
ControllerTrait::__callmethod.
- Can now add cookies when using the response builder.
- Dispatcher can now internally send cookies.
- Removed
ResponseBuilder::addHeadersandResponseBuilder::headers.
- Changed
ResponseBuilder::addHeadertoResponseBuilder::withHeader.
- Fixed bug where headers were not completely copied when creating a new response from an existing response.
- Fixed bug where request was not correctly rebound to the container.
- Default throttles for rate limiting have been removed.
- Fixed bug where any response object that could not be type cast as a string would throw an
UnexpectedValueException. - Fixed bug where request was not bound as an instance resulting in rebounds not being fired.
- Fixed inconsistent response when returning an empty paginator and using transformers.
- Fixed bug with protected endpoints becoming unprotected when setting protection on both group and route.
- Fixed bug where routes defined before the replacement of the bound router would be lost.
AuthFilternow require authentication for internal requests.- Don't catch exceptions and handle them within the
AuthFilter, this causes issues with internal requests.
- Added a
debugconfiguration key which enables/disables a more detailed error response for some exceptions.
- Fixed bug with Basic authentication.
Dingo\Api\ApiServiceProvideris now atDingo\Api\Provider\ApiServiceProvider. It has been split up into several smaller service providers.- Made namespaces more consistent by making them all singular.
- Custom transformation layers must now implement
Dingo\Api\Transformer\TransformerInterface. - Authentication providers must now implement the
Dingo\Api\Auth\ProviderInterface. - Upgraded the League OAuth 2.0 package to version 4.
- Renamed
ControllerTrait::scopetoControllerTrait::scopesfor consistency with other methods of definding scopes.
- Some dependencies are now injected into controller via setters instead of in the constructor. (#111)
- Authentication and Rate Limiting are now filters. Both can be changed on a per-route basis.
- Rate limiting now makes use of different throttles so the configuration has changed slightly.
- Added
API::response()to make a new response builder from closure based routes. - Added
LeagueOAuth2Provider::setUserResolverandLeagueOAuth2Provider::setClientResolver. Dingo\Api\Routing\Controlleris nowDingo\Api\Routing\ControllerTrait, you can now create your own base controller and simply use the trait.- Allow raw data to be sent with an internal request.
- Allow custom headers to be set on internal requests.
- Added a
Dispatcher::jsonmethod to easily send raw JSON data with an internal request. Dispatcher::attachnow accepts either an array of file details or an array ofUploadedFileinstances.- Added a
Dispatcher::onmethod to indicate which domain the dispatcher should work on. - Relations are automatically loaded when using Fractal includes.
- Added a
Dispatcher::rawmethod to return a raw response object instead of the original content.
- Removed
Response::api()macro. - Removed
LeagueOAuth2Provider::setUserCallbackandLeagueOAuth2Provider::setClientCallback. - Removed
ResponseFormat::formatOtheras non-formattable responses are returned as they are.
- Global router "after" filter is now fired even when an exception is thrown and caught by the API.
- The response builder will now return the original response instance to internal requests and is decoupled from Fractal.
- Errors generated by the response factory and the exception handler are now the same.
LeagueOAuth2Providerwill now authenticate for any matching scopes instead of requiring all scopes.
- Fixed bug where conditional requests affected routes outside of the API. (#141)
- Fixed incompatibility bug with the latest Laravel. (#156)
- Basic implementation of attaching files for internal requests.
- Added
addMeta(andmetaalias) to theResponseBuilderto add Fractal meta data.
- Fixed bug where the request was not being set on the transformer prior to dispatching the request. (#101)
- Refactored transformers. You can still use the
API::transformmethod, however if you're using the underlying transformer instance to register your bindings you should now useregister, e.g.,$app['dingo.api.transformer']->register('Class', 'ClassTransformer');. - Can now grab the underlying Fractal instance, useful for custom serializers.
- Converted codebase to PSR-2.
- Authentication has been completely overhauled.
- Added the
ResponseBuilder. - Conditional requests can now be enabled/disabled globally or on groups and individual endpoints.
- Non-morphable responses such as those created from
Response::downloadcan now be returned. - Fixed bug where headers set on a thrown exception were not properly set on the generated response.
- Updated to the latest version of Fractal.
- Added a
artisan api:routescommand. - Allow non-HTTP exceptions to be handled with
API::errorfor better exception handling.
- Properly check collections are transformable when bound by contract. (#34)
- Transformation layer is now configurable meaning you can swap out Fractal for some other transformation library.
- Transformable classes can now implement
Dingo\Api\Transformer\TransformableInterfaceto return their respective transformer.
- Fixed bug where collections were not detected as being a transformable type. (#30)
- Change the
embedsconfiguration key tofractal_includes.
- Only resolve controllers when they are being used. This prevents controllers from being resolved for no particular reason and should be more efficient when using large number of controllers.
- Configuration option for the default response format.
- Properly queue and replace requests and route instances.
- Default response format can now be configured in the configuration file.
- Custom authentication providers that extend at runtime can be registered as instances.
- Custom authentication providers that extend at runtime now get the application container as a parameter when using an anonymous function to resolve the provider.
- Minor internal changes to authorization based authentication providers.
- Properly maintain request and route stacks.
- Fixed bug where transformers would try to transform a non-transformable response.
- Added Fractal pagination support.
- Allow authentication providers to be extended at runtime.
- Refactoring and simplifying of authentication layer.
- Added Fractal transformers.
- Router gracefully falls back to default API version if no exact matching collection is found.
- APIs can now be versioned with point releases, e.g.,
v1.1. - Fixed bug where collections were prematurely matched resulting in 404s when the prematurely matched collection did not contain the correct routes. (#16)
- Initial release