Discussion Topic
Today, users are consuming data in various multi-channel ways. Displaying Data in a website is no more the only way to communicate. Data must be accessible to external applications not only in read mode, but also in write mode.
Currently TYPO3 is not providing an « easy » access to the data. Of course, you can export the data in JSON or XML formats, but no API solution so far.
Impact
Based on TCA and BE/FE users permissions, I’d like to add a layer to TYPO3 that allows the devs to easily create an access to any data in TYPO3, through an API interface.
This extension will be optional (as many of the core extensions), but once installed, it automatically adds an API access to data, allowing external application (mobile, …) to make request to TYPO3. At the same time, those application will also be able to modify the data in TYPO3.
As this is based on TCA, the structure of the data returned or insert by the API is already available. Additional configuration on TCA may not be required at all ! (but I didn’t study all scenarios yet, of course).
In theory, TYPO3 will be able to control who is interacting with the data (which fields can be exposed, edited, …) and will also have a control of the format that is store in DB (RTE fields, date, …).
This project must be « technology independent ». I mean, the choice of using Rest, Soap or Graphql is not the topic of this discussion (even if I have an opinion about that ). This choice can be done later… Most important, if in 2 years, an new fancy API trend technology is rising, our API layer should be able to welcome that new technology easily.
Pro
- Central API can be used to enable all kinds of services around it
- This API could also be used to pull in and expose data for rendering in Fluid templates
Con
- Nothing yet
Remarks and notes
Question is whether there are objections from anyone against creating such API based on TCA information
Organizational
Topic Initiator: Roberto Presedo
Topic Mentor: Helmut Hummel