Work Package #45088

Improved REST support

Added by Bastian Waidelich over 8 years ago. Updated over 7 years ago.

Status:
Resolved
Priority:
Should have
Category:
General / Project
Target version:
Start date:
2011-05-29
Due date:
2013-04-13
% Done:

100%

Estimated time:
(Total: 108.00 h)
Spent time:

Description

Improved REST support

Motivation

A solid webservice interface provides countless possibilities. With a proper foundation it would easily be possible to expose the TYPO3 Content Repository as service for instance. This would allow other systems to interact with arbitrary nodes (e.g. mobile clients creating pages, a simple plugin creating content nodes, ...).
Another use case are custom service APIs for the clients business logic. Flow already provides basic support for that, but there are some important parts missing.

Goal

The goal is to have a solid foundation to easily provide custom REST APIs. What has been started at #37604 will be used as base for this.

Deliverables

  • MUST: more flexible request handling
    • Reworked argument merging #45290 - this is required in order to fix argument mapping with non-GET requests
    • More flexible parsing of body arguments #45293 - this is required in order to support custom request formats
  • MUST: Routing improvements
    • Global route constraints #27117 - this is required in order to match requests based on the request method and/or arbitrary request headers
    • Nested sub routes #43966 - this is required in order to allow developers to easily include "RESTful" routes
  • MUST: session-less authentication #45282 - currently Flow creates a session for every authentication, this is incompatible with REST
  • MUST: solid test coverage
  • MUST: documentation
  • COULD: improved error handling #43569 - currently exceptions are rendered independently from the requested format (HTML for all web requests)
  • COULD: exemplary (mobile) client that interacts with the TYPO3CR

Files

typo3neos-distribution-base-45088.pdf (5.26 KB) typo3neos-distribution-base-45088.pdf Sebastian Kurfuerst, 2013-02-16 15:11

Subtasks

TYPO3.Flow - Feature #45282: Support for "sessionless authentication"ResolvedBastian Waidelich2013-02-082013-04-13

Actions
TYPO3.Flow - Feature #43966: Allow all routes to include sub routesResolvedBastian Waidelich2012-12-13

Actions
TYPO3.Flow - Feature #27117: Bind routes to HTTP request methodsResolvedBastian Waidelich2011-05-292013-04-13

Actions
TYPO3.Flow - Feature #45293: More flexible parsing of body argumentsResolvedBastian Waidelich2013-02-082013-04-13

Actions
TYPO3.Flow - Bug #45290: Body arguments should not be merged before property mapping takes placeClosedBastian Waidelich2013-02-082013-04-13

Actions

Related issues

Related to Base Distribution - Story #44913: RESTful NodeController for easy comment creationOn Hold

Actions
Related to TYPO3.Flow - Feature #37604: Make Flow RestController useless by improving MVC stackResolvedBastian Waidelich2012-05-30

Actions
Related to TYPO3.Flow - Feature #43569: Exception Handler should respect formatClosedBastian Waidelich2012-12-042013-04-13

Actions

Also available in: Atom PDF