<![CDATA[ MODX RESTful API & nginx: access issue - My Forums]]> https://forums.modx.com/thread/?thread=104332 <![CDATA[MODX RESTful API & nginx: access issue]]> https://forums.modx.com/thread/104332/modx-restful-api-nginx-access-issue#dis-post-561196 https://docs.modx.com/revolution/2.x/developing-in-modx/advanced-development/developing-rest-servers

I am hosting this on modx cloud and I keep getting the
{"success":false,"message":"Method not allowed","object":[],"code":405}
error.

My files are in the /rest/ directory at my site root.

rest/index.php:
<?php
// Boot up MODX
require_once dirname(dirname(__FILE__)) . '/config.core.php';
require_once MODX_CORE_PATH . 'model/modx/modx.class.php';
$modx = new modX();
$modx->initialize('web');
$modx->getService('error','error.modError', '', '');

// Load the modRestService class and pass it some basic configuration
$rest = $modx->getService('rest', 'rest.modRestService', '', array(
    'basePath' => dirname(__FILE__) . '/Controllers/',
    'controllerClassSeparator' => '',
    'controllerClassPrefix' => 'MyController',
    'xmlRootNode' => 'response',
));
// Prepare the request
$rest->prepare();
// Make sure the user has the proper permissions, send the user a 401 error if not
if (!$rest->checkPermissions()) {
    $rest->sendUnauthorized(true);
}
// Run the request
$rest->process();


rest/controllers/programs
class MyControllerPrograms extends modRestController {
    public $classKey = 'modResource';
    public $defaultSortField = 'id';
    public $defaultSortDirection = 'DESC';
 
    public function beforePost()
    {
        return false;
    }
 
    public function beforePut()
    {
        return false;
    }
 
    public function beforeDelete()
    {
        return false;
    }
 
}
}



nginx rules
location /rest/ {
    try_files $uri @modx_rest;
}
location @modx_rest {
    rewrite ^/rest/(.*)$ /rest/index.php?_rest=$1&$args last;
}
location / {
    try_files $uri $uri/ @modx-rewrite;
}


Most ideas on the net are around putting an htaccess in the rest directory, but with nginx this isn't relevant.

What could be missing in the above set up? I will be calling this api from a gatsby.js (node.js based) site as a data source.

Thanks]]>
dvstudiosinc Aug 28, 2018, 03:08 PM https://forums.modx.com/thread/104332/modx-restful-api-nginx-access-issue#dis-post-561196