https://m.academy/articles/magento-2-request-response-lifecycle/
https://tiagosampaio.com/2023/06/19/front-controller-the-guy-who-handles-the-request-in-magento-2/
Types of Controller Response in Magento 2
There are five Controller Response Types in Magento
- Page
- JSON
- ROW
- Redirect
- Forward
(01) Page: This returns HTML loaded from a layout handle.
(02) JSON: this returns a response in JSON format. It can be used in API or AJAX requests.
Magento\Framework\Controller\Result\JsonFactory;
$result = $this->jsonFactory->create();
$data = ['success' => true, 'message' => 'Data fetched successfully']; return $result->setData($data);
(03) Raw: this returns whatever you want to be returned.
Magento\Framework\Controller\Result\RawFactory;
$result = $this->rawFactory->create();
$result->setHeader('Content-Type', 'text/plain');
$result->setContents('This is a plain text output'); return $result;