Ikodes Technology

Creat POST Method Controller in Magento 2.3
In Magento 2.3, a POST method controller can be created by implementing Magento\Framework\App\Action\HttpPostActionInterface.
But If we have lots of POST controllers in our Module, then there will need to implement this Interface in all Controllers.
So, In this article, we will explain to you an easy and efficient way to create POST controllers in Magento 2.3.
Firstly, create an ApiController Class, which is implementing \Magento\Framework\App\CsrfAwareActionInterface and in this class, we have implemented two methods named as createCsrfValidationException and validateForCsrf.


namespace Vendor\Module\Controller;

use Magento\Framework\Controller\ResultFactory;
use Magento\Framework\App\RequestInterface;
use Magento\Framework\App\Request\InvalidRequestException;

abstract class ApiController extends \Magento\Framework\App\Action\Action implements \Magento\Framework\App\CsrfAwareActionInterface
protected $_helper;

public function __construct(\Magento\Framework\App\Action\Context $context ) {
/** * @inheritDoc */
public function createCsrfValidationException( RequestInterface $request ): ? InvalidRequestException {
return null;
/** * @inheritDoc */
public function validateForCsrf(RequestInterface $request): ?bool {
return true;


Then, we extend the ApiController class in our POST/GET method controllers.
namespace Vendor\Module\Controller\Contact;
class Post extends \Vendor\Module\Controller\ApiController {
public function execute() { // write your code here } }

Author Bio

ikodes Technology

Manager of Marketing for Red Stag Fulfillment, an ecommerce fulfillment warehouse that was born out of ecommerce. He has years of experience in ecommerce and business development. In his free time, Jake enjoys reading about business and sharing his own experience with others.

Go Back

Expand Your Digital Horizons With Us

Start a new project or take an existing one to the next level. Get in touch to start
small, scale-up, and go Agile.

    Math Captcha − 1 = 3