Taking Lucas's suggestion of using restws, I have configured the path in the module as such:
function mymodule_restws_resource_info() { return array( 'mymodule_person' => array( 'label' => t('Person'), 'class' => 'PersonResourceController', 'menu_path' => 'api/person', ), ); }
That part seems to work, because when I send a POST transaction via Advanced Rest Client in chrome, I get a 200 response (I get a 404 if I change the request url).
That said, in the module I also throw an error if attempting an update, delete or read. When I send any of those, I still get a 200 response.
Any of GET, POST, PUT or UPDATE gives me
Response does not contain any data
including the create method in the resource controller, so it's not firing.
Do I need to do something to invoke it beyond hitting the api/person with a post payload?