Magento 2 Controller Json Factory

No artigo anterior, vimos como trabalhar com Page Factory no Response Type do Controller. Neste artigo, veremos como utilizar Magento 2 Controller Json Factory para retornar um conteúdo no formato json em nosso controller.

Magento 2 Controller Json Factory

Quando precisamos trabalhar com um Controller que nos responda um conteúdo, geralmente trabalharmos com Json. Json é muito útil, por exemplo, quando vamos consumir uma rota POST e precisamos pegar o resultado do nosso POST.

Voltando ao nosso Controller, fizemos a seguinte modificação:

<?php

namespace ForMage\Learning\Controller\Page;

use Magento\Framework\App\Action\Context;
use Magento\Framework\View\Result\PageFactory;
use Magento\Framework\Controller\Result\JsonFactory;

class ResponseType extends \Magento\Framework\App\Action\Action
{
    protected $pageFactory;
    protected $jsonFactory;

    public function __construct(
        Context $context,
        PageFactory $page,
        JsonFactory $jsonFactory
    ) {
        parent::__construct($context);
        $this->pageFactory = $page;
        $this->jsonFactory = $jsonFactory;
    }

    public function execute()
    {
//        return $this->pageFactory->create();
        return $this->jsonFactory->create()->setData(['name' => 'Abraão', 'city' => 'Rio de Janeiro', 'customer' => [
            'name' => 'customer name',
            'email' => 'customer email'
        ]]);
    }
}

Como visto no código acima, nós adicionamos o use Magento\Framework\Controller\Result\JsonFactory; em nosso Controller e alteramos o nosso construtor. Em nosso método public function execute() temos o seguinte:

    public function execute()
    {
//        return $this->pageFactory->create();
        return $this->jsonFactory->create()->setData(['name' => 'Abraão', 'city' => 'Rio de Janeiro', 'customer' => [
            'name' => 'customer name',
            'email' => 'customer email'
        ]]);
    }

Com isso, ao acessarmos a nossa rota, temos o seguinte resultado:

4Mage - Trabalhando com Json Factory

De maneira bem simples, você pode implementar o retorno de um conteúdo no formato Json em seu Controller!

Para se aprofundar nos seus estudos sobre Controller no Magento 2

 

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *