Skip to content

weierophinney/problem-details 0.2.0

Compare
Choose a tag to compare
@weierophinney weierophinney released this 30 May 15:39
· 27 commits to master since this release

Added

  • #4 adds ProblemDetailsReponseFactoryFactory for generating a ProblemDetailsResponseFactory instance.

Changed

  • #4 changes the ProblemDetailsResponseFactory in several ways:

    • It is now instantiable. The constructor accepts a boolean indicating debug status (false by default), an integer bitmask of JSON encoding flags, a PSR-7 ResponseInterface instance, and a callable factory for generating a writable PSR-7 StreamInterface for the final problem details response content.
    • createResponse() is now an instance method, and its first argument is no longer an Accept header, but a PSR-7 ServerRequestInterface instance.
    • createResponseFromThrowable() is now an instance method, and its first argument is no longer an Accept header, but a PSR-7 ServerRequestInterface instance.
  • #4 changes the ProblemDetailsMiddleware; it now composes a ProblemDetailsResponseFactory insteead of an isDebug flag. Additionally, it no longer wraps processing of the delegate in a try/catch block if the request cannot accept JSON or XML.

  • #4 changes the ProblemDetailsMiddlewareFactory to inject the ProblemDetailsMiddleware with a ProblemDetailsResponseFactory instead of an isDebug flag.

Deprecated

  • Nothing.

Removed

  • #4 removes the ProblemDetailsJsonResponse; use the ProblemDetailsResponseFactory instead.

  • #4 removes the ProblemDetailsXmlResponse; use the ProblemDetailsResponseFactory instead.

  • #4 removes the CommonProblemDetails trait; the logic is now incorporated in the ProblemDetailsResponseFactory.

  • #4 removes the ProblemDetailsResponse interface; PSR-7 response prototypes are now used instead.

Fixed

  • #4 updates JSON response generation to allow specifying your own JSON encoding flags. By default, it now does pretty JSON, with unescaped slashes and unicode.