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 ich die() 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


Stichprobe n=36680 von Gosign gecrawlte TYPO3-Seiten mit den Top-Level-Domains <.de/.ch/.at>