Heutzutage ist ein Headless CMS-Ansatz im Trend. Die Leute lieben es, APIs basierte Webseiten und Webapps zu erstellen. Stellen Sie sich eine Situation vor, in der Sie JSON-API-Daten in Ihr TYPO3 Fluid einlesen müssen.
Hier ist das TYPO3 Code-Snippet, um JSON API Daten in Ihr TYPO3 CMS zu bekommen, indem Sie den TYPO3 Fluid ViewHelper benutzen.
Aufruf von benutzerdefiniertem TYPO3 JSON an Fluid ViewHelper
{namespace n=Vendor\Package\ViewHelpers}
Benutzerdefinierten TYPO3 JsonToFluidViewHelper vorbereiten
namespace Vendor\Package\ViewHelpers;
use TYPO3\CMS\Extbase\Utility\LocalizationUtility;
use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface;
use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper;
use TYPO3Fluid\Fluid\Core\ViewHelper\Traits\CompileWithRenderStatic;
use TYPO3\CMS\Core\Http\RequestFactory;
use TYPO3\CMS\Core\Utility\GeneralUtility;
/**
* renders the header of the results page
* @internal
*/
class JsonToFluidViewHelper extends AbstractViewHelper
{
use CompileWithRenderStatic;
/**
* As this ViewHelper renders HTML, the output must not be escaped.
*
* @var bool
*/
protected $escapeOutput = false;
/**
* Initialize arguments
*/
public function initializeArguments()
{
$this->registerArgument('api', 'string', '', true);
}
/**
* @param array $arguments
* @param callable|\Closure $renderChildrenClosure
* @param RenderingContextInterface $renderingContext
* @return array
*/
public static function renderStatic(array $arguments, \Closure $renderChildrenClosure, RenderingContextInterface $renderingContext)
{
$api = $arguments['api'];
$req = GeneralUtility::makeInstance(RequestFactory::class);
$response = $req->request($api,'GET',[]);
$rawResponse = $response->getBody()->getContents();
return json_decode($rawResponse, true);
}
}
Post a Comment