How to make my Drupal custome Service return data on GET? I have defined few Drupal custom Services and they are working fine
via POST requests. But one of them needs to be available via GET.

This one:

function rooms_services_services_resources() {
    return array(
        'api' =&gt; array(
            'actions' =&gt; array(
                'hotel_inventory' =&gt; array(
                    'help' =&gt; 'Inventory of all Hotels',
                    'callback' =&gt; 'rooms_services_hotel_inventory',
                    'access callback' =&gt; 'rooms_services_access_callback',
                    'access arguments append' =&gt; false,
                    'args' =&gt; array(
                        array(
                            'name' =&gt; 'params',
                            'optional' =&gt; true,
                            'source' =&gt; 'param',
                            'type' =&gt; 'struct',
                            'description' =&gt; 'all passed URL parameters'
                        ),
                    ),
                ),
            ),
        ),
    );
}


It's working fine when I am making a request via POST with headers:

`Content-Type: application/x-www-form-urlencoded`


or

`Content-Type: application/json`


as those I have enabled in my REST Server...

How do I make it work via simple GET request ?
The short answer is you can't, unfortunately (AFAIK). For all non action resources, the Services module assumes that they are part of the entity C.R.U.D. spectrum, and then decides what to do based on the HTTP method. For example:

POST = Create
GET = Retrieve
PUT = Update
DELETE = Delete


So unless you're building an entity C.R.U.D. layer, you'll have to use POST on the actions array. Alternatively you could use hook_menu() to make your own custom page_callback that outputs JSON, then it could be accessed over GET. Another alternative is to use something like Views Datasource and compose a Views JSON to output your data (also available via GET).