maikschneider/tca-api

This package provides an REST API based on the TYPO3 TCA — exposes database tables as Hydra JSON-LD resources.

Maintainers

Package info

github.com/maikschneider/tca-api

Homepage

Documentation

Type:typo3-cms-extension

pkg:composer/maikschneider/tca-api

Transparency log

Statistics

Installs: 1 168

Dependents: 1

Suggesters: 0

Stars: 8

Open Issues: 27

1.0.0 2026-08-25 10:24 UTC

README

Extension icon

TYPO3 extension tca_api

Latest version Supported TYPO3 versions Supported PHP versions Coverage Tests CGL License

This TYPO3 extension exposes database tables as Hydra JSON-LD resources through a configuration-driven REST API. Drop a PHP array into Configuration/TcaApi/ naming the table, and the extension handles routing, serialization, filtering, sorting, pagination, validation, and access control — no controllers, no Extbase models.

<?php
// EXT:my_ext/Configuration/TcaApi/Articles.php

return [
    'general' => [
        'table'        => 'tx_myext_domain_model_article',
        'resourceName' => 'articles',
        'resourceType' => 'Article',
    ],
];

That is a complete, read-only API at /_api/articles, including an OpenAPI spec and Swagger UI. Everything beyond it is opt-in.

✨ Features

Resource definitions — Expose a table by registering a PHP array

Querying — Exact, partial, word-start, range, full-text and MM filters

Security — Per-operation roles, from PUBLIC to record-level OWNER

Serialization — Every TCA field type handled, relations resolved

Multi-language & caching — Production concerns handled

  • URL base segments and an X-Locale header resolve the SiteLanguage
  • Tag-based response caching, invalidated automatically by the DataHandler

OpenAPI — Spec and Swagger UI generated from the registered resources

  • Interactive Swagger UI at the API prefix, plus a backend module on TYPO3 v14
  • Compatible with API Platform and its admin

Extensibility — Every layer is replaceable

🔥 Installation

Requirements

  • TYPO3 13.4 LTS or 14.3+
  • PHP 8.2+

Composer

Packagist Packagist Downloads

composer require maikschneider/tca-api

TER

TER version TER downloads

Download the zip file from TYPO3 extension repository (TER).

📂 Setup

The extension ships a TYPO3 site set. Add it to your site's config/sites/<site>/config.yaml, or via Site Management → Sites in the backend:

dependencies:
  - maikschneider/tca-api

The API then responds under /_api/. Prefix, pagination defaults, CORS and OpenAPI access are site settings, editable under Site Management → Sites → Settings.

📙 Documentation

Please have a look at the official extension documentation.

A runnable demo covering a range of configurations lives at maikschneider/typo3-petstore.

🧑‍💻 Contributing

Please have a look at CONTRIBUTING.md, and join the discussions — feedback on the architecture, security model and design decisions is very welcome.

🔒 Security Policy

Please read our security policy if you discover a security vulnerability in this extension.

⭐ License

This project is licensed under GNU General Public License 2.0 (or later).