
TYPO3 Plugin:
acm_rest_api
acm_rest_api
beschreibung
bietet einen RESTful-Service für TYPO3-Erweiterungen im acm-Namensraum
.
Grundsätzlich benötigen wir in TYPO3 eine Seite, die das acm_rest_api
Frontend Plugin enthält.
Konfiguration
Die Konfigurationsparameter finden Sie unter Konfiguration/setup.txt
.
Aufgrund einiger Probleme können wir keine Konstanten in setup.txt
verwenden, also müssen Sie die storagePids in der Bootstrap-Erweiterung setzen
URL-Schema
um die URL-Umleitung über realurl zu vereinfachen, verwenden wir eine fix page uid und eine fixedPostVars-Konfiguration
.
fixedPostVars' => array((
acm_rest_api' => array(
array(
GETvar' => 'Typ',
noMatch' => 'bypass'
),
array(
GETvar' =>'tx_acmrestapi_re[controller]',
noMatch' => 'bypass',
),
array(
GETvar' => 'tx_acmrestapi_re[action]'' ,
valueMap' => array(()
Status' => Status',
Artikel' =>'listArtikel',
Artikel' =>'listArtikel' =>'listArtikel'
)
),
$baekoConfiguration['fixedPostVars']['671'] ='acm_rest_api';
Die Seite in TYPO3 hat also den Sprachpfad /api/
. Danach wird die angeforderte Aktion aufgenommen.
z.B. /api/articles
will fire listArticlesAction
in Acm\AcmRestApi\Controller\RestController.php
.
Im Moment müssen alle Aktionen in unserer globalen RealUrlConfiguration.php
enthalten sein
Vielleicht können wir später einen dynamischen Ansatz verwenden.
Entität nach ID abrufen
/api/article/{uid}
z.B. verwenden Sie /api/article/3
, um einen Artikel mit uid=3
zu erhalten.
Einige werden zusätzliche Parameter haben, z.B. /articles/?since=2014-05-05%2011:58:06
wird Daten seit dem übergebenen Zeitstring bereitstellen.
Hinzufügen einer Erweiterung
Um eine Erweiterung zu dieser API hinzuzufügen, müssen Sie zuerst die benötigten Aktionen in Acm\AcmRestApi\Controller\RestController\RestController.php
hinzufügen.
Vergiss nicht, sie in ext_localconf.php
zu aktivieren.
Alle Logikteile sind an Acm\AcmRestApi\Provider\Dataprovider.php
ausgelagert, um den Controller so klein wie möglich zu halten
Um die Daten von einer anderen acm-Erweiterung zu erhalten, müssen Sie die benötigten Repositories in Acm\AcmRestApi\Provider\Dataprovider.php
einfügen.
/**
* articleRepository
*
* @var \Acm\Acm\AcmNews\Domain\Repository\ArticleRepository\ArticleRepository
* @inject
*/
geschütztes $articleRepository;
In diesem Beispiel wird ein Verweis auf das Artikel-Repository aus der Erweiterung acm_news
eingefügt.
So können Sie jetzt dieses Repository verwenden, um Ihre Entitäten zu erhalten und sind frei, Daten zu manipulieren und magische Dinge zu tun, bis Sie alle Daten haben, die Sie über json/jsonp
zurückgeben möchten.
Die Funktion printOutput($output)
gibt die Ausgabe an die Clients zurück. Es setzt einige Json-Header
und gibt die Antwort automatisch in einem Jsonp-Rückruf
zurück, wenn die Anfrage einen Parameter namens Callback
findet.
Wenn Sie ein Detailergebnis für eine bestimmte uid hinzufügen möchten, verwenden Sie $_GET['uid']
, um den Parameter aus der Anfrage zu erhalten.
Jedes Repository hat eine Funktion wie findByUid
.
Nur die benötigten Daten zurückgeben
Halten Sie die Retourendaten immer so klein wie möglich. Erstellen Sie eine Funktion in Acm\AcmRestApi\Provider\Dataprovider.php
, um die benötigten Datenfelder auszuwählen, die Sie zurückgeben möchten
Um eine Nive-URL zu haben, fügen Sie einfach Ihre Aktion zu RealUrlConfiguration.php
im Bereich fixedPostVars
hinzu:
GETvar' => 'tx_acmrestapi_re[action]'' ,
valueMap' => array(()
Status' => Status',
Artikel' =>'listArtikel',
Artikel' =>'listArtikel' =>'listArtikel'
)
TODO
- Finden Sie einen Weg, die Rückgabewerte konfigurierbar zu machen
- Finden Sie einen besseren Weg, die Ausgabe in
printOutput($output
) zurückzugeben. Vorerst muss ichdie()
die Anforderung, den json nicht im Frontend zu rendern,sterben
:O - Verwenden Sie einen dynamischen Ansatz zur Handhabung von URLs über realurl
- leistungsoptimierungen (Reduzierung der Ladezeit)
Benötigen Sie schnelle Hilfe mit dieser Extension? Unser Team von erfahrenen TYPO3-Entwicklern löst Probleme unkompliziert und zum Stundensatz.
Verteilung:ACM_REST_API ist auf
0.01 % aller TYPO3 installiert.
- 0.03 % aller TYPO3 7.6.x Installationen installiert
Aktualität:ACM_REST_API ist auf dem neusten Stand (v.unknown) bei
100 % aller TYPO3 Installationen
- 0 % aller TYPO3 9.5.x Installationen
- 0 % aller TYPO3 9.3.x Installationen
- 0 % aller TYPO3 9.2.x Installationen
- 0 % aller TYPO3 8.7.x Installationen
- 0.03 % aller TYPO3 7.6.x Installationen
- 0 % aller TYPO3 7.5.x Installationen
- 0 % aller TYPO3 7.4.x Installationen
- 0 % aller TYPO3 7.3.x Installationen
- 0 % aller TYPO3 7.2.x Installationen
- 0 % aller TYPO3 7.1.x Installationen
- 0 % aller TYPO3 7.0.x Installationen
- 0 % aller TYPO3 6.2.x Installationen
- 0 % aller TYPO3 6.1.x Installationen
- 0 % aller TYPO3 6.0.x Installationen
- 0 % aller TYPO3 5.0.x Installationen
- 0 % aller TYPO3 4.7.x Installationen
- 0 % aller TYPO3 4.6.x Installationen
- 0 % aller TYPO3 4.5.x Installationen
- 0 % aller TYPO3 4.4.x Installationen
- 0 % aller TYPO3 4.3.x Installationen
- 0 % aller TYPO3 4.2.x Installationen
- 0 % aller TYPO3 4.1.x Installationen
- 0 % aller TYPO3 4.0.x Installationen
- 0 % aller TYPO3 3.5.x Installationen

Gosign-Responsive Index: TYPO3 Installationen nutzen ACM_REST_API zu
- 0 % wenn der Gosign-Responsive-Index zwischen 80 % und 100 % ist
- 0 % wenn der Gosign-Responsive-Index zwischen 60 % und 80 % ist
- 100 % wenn der Gosign-Responsive-Index zwischen 40 % und 60 % ist
- 0 % wenn der Gosign-Responsive-Index zwischen 20 % und 40 % ist
- 0 % wenn der Gosign-Responsive-Index zwischen 0 % und 20 % ist

Pagespeed: TYPO3 Installationen nutzen ACM_REST_API zu
- 50 % wenn der Pagespeed zwischen 80 % und 100 % ist
- 0 % wenn der Pagespeed zwischen 60 % und 80 % ist
- 0 % wenn der Pagespeed zwischen 40 % und 60 % ist
- 50 % wenn der Pagespeed zwischen 20 % und 40 % ist
- 0 % wenn der Pagespeed zwischen 0 % und 20 % ist
[DependciesAndConflicts]