Skip to content

REST 4.0.0

Compare
Choose a tag to compare
@cundd cundd released this 02 Jan 08:56
· 30 commits to v3 since this release

After over a year of work the fourth major release is released. The main focus of this iteration is to support TYPO3 v9
LTS and to clean up the DataProvider's interface.

If an installation uses a custom Data Provider, it must be adapted to the new interface.

A collection of the most important changes can be found below.

Breaking changes

  • Prepend the name of custom HTTP headers with "X-" (#63e0082)
  • Languages are used for Domain Models and must be mapped in TypoScript (#6848078, FAQs)
  • Requested language has precedence over Site language (#3703e59)
  • Clean up the Object Manager (#fab4139)
  • Fix Dispatcher entry point and add return type (Fix #58, #064a641)
  • Replace headers configured in settings.responseHeaders (#3589149)
  • Add scalar types for the CRUD Handler (#2a0ea1b)
  • Do not call update() if __identity is given (#ca2657a)
  • Drop TYPO3 7 LTS Support (#82c4fa2)
  • Convert the incoming property parameter into a valid property key (changes to DataProviderInterface::getModelProperty(), #53ce98c)
  • Prefer to call a property getter method over calling _getProperty() (changes to DataProviderInterface::getModelProperty(), #53ce98c)
  • Add CORS headers to failed requests (#ba3f86c)
  • Require PHP 7.1 or later (#bd043c7)
  • Virtual Object Persistence Manager and Backend require a Query instance as argument (#52dca42, #dac8157)
  • Remove deprecated getCacheLiveTime() (#a901e2e)
  • Remove deprecated methods (#cc0e58a)

Features and improvements

  • Add support for new Site Handling and improve language handling (#aa1404e, #61eb3fd, #aa1404e)
  • Add cors.allowedOrigins to define a list of allowed CORS origins (#b8a9e80)
  • Add Parameter Type {raw} (Fix #56, #3047fad)
  • Add additional debugging headers (#b461372, #ab26785)
  • Update the icons !new icon (#eaf54d5)
  • Add route for OPTIONS requests to the Auth Handler (#6fcda9a)
  • Replace some @inject annotations with constructor or method injection (#94780af)
  • Add the Resource Type to the cache tags (#c17a736)
  • Add scalar type checks (#23595da, #e16bbba, #1dab787, #7d1648b)
  • Add factory methods for PATCH and OPTIONS requests (#b151929)
  • Respect the Cache Lifetime from the Resource Type configuration and use "lifetime" in names (#68b0099)
  • Change the "camelCase to underscore" method for normalizeResourceType() (#556d3ff)
  • Add support to limit the number of results in listAll() for custom extensions (#a4da600)

Data Provider

  • Cleanup the Data Provider and CRUD Handler APIs (#f808610, #9027618)
  • Add isModelNew() to allow overriding the check for new instances (#070d375)
  • Add withResourceType() and strict checks for the Format (#fe9b05c)
  • Add countAllModels() to Data Providers (#98b8cdb)
  • Prioritize Vendor\Namespace classes (#8ffdb9a)

Object Manager

  • Also detect interfaces in getImplementationFromResourceConfiguration() (#1f58306)
  • Add support to specify the DataProvider in TypoScript (#7e4c93a)
  • Decouple Object Manager from TYPO3 (#fe3e106, #926b94f)

Virtual Objects

  • Add support for Constraint objects (#cf5d6b3)
  • Add scalar types for WhereClauseBuilder method arguments (#a915832)
  • Move the Operator constants into a separate interface (#a947b2c)
  • Add constructor for Query (#2d4a403)
  • Add SQL Expression object (#5f156f5)
  • Enhance the possibilities for subclasses of the Where Clause Builder (#58997ae)