web-dev-qa-db-ja.com

カスタムサービスモジュールでPOSTリクエストを実装する方法は?

PHPクライアントライブラリからPOSTパラメータを送信したいのですが、そのためにカスタムサービスモジュールを作成するにはどうすればよいですか?

function module_rest_services_resources() {
  return array(
   'new_note' => array(
         'retrieve' => array(
           'help' => 'Retrieves a note',
           'file' => array('file' => 'inc', 'module' => 'module_rest'),
           'callback' => '_module_rest_retrieve',
           'access callback' => '_module_rest_access',
           'access arguments' => array('view'),
           'access arguments append' => TRUE,
           'args' => array(
             array(
               'name' => 'id',
               'type' => 'int',
               'description' => 'The id of the note to get',
               'source' => array('path' => '0'),
               'optional' => FALSE,
             ),
           ),
         ),
     ),
  );
}

GETリクエストを処理する場合、POSTを処理するためにここで何を変更する必要がありますか?

1
Prabhu

POSTリクエストに変更します。リソースのソースをpathからdataに変更するだけです。例:

function module_rest_services_resources() {
  return array(
  'new_note' => array(
     'actions' => array(
       'retrieve' => array(
         'help' => 'Retrieves a note',
         'file' => array('file' => 'inc', 'module' => 'module_rest'),
         'callback' => '_module_rest_retrieve',
         'access callback' => '_module_rest_access',
         'access arguments' => array('view'),
         'access arguments append' => TRUE,
         'args' => array(
           array(
             'name' => 'id',
             'type' => 'int',
             'description' => 'The id of the note to get',
             'source' => array('data' => 'id'),
             'optional' => FALSE,
            ),
          ),
        ),
      ),
    ),
  );
}
2
Stone Vo

投稿リクエストには「アクション」を使用する必要があります。例えば:

<?php
/*
* Implementation of hook_services_resources()
*/
function custom_services_services_resources(){
    return array(
    'new_note' => array(
    'actions' => array(
    'note' => array(
    'help' => 'Retrieves a note',
             'file' => array('file' => 'inc', 'module' => 'custom_services'),
             'callback' => 'custom_services_rest_retrieve',
             'access callback' => 'custom_services_custom_access',
             'access arguments' => array('view'),
             'access arguments append' => TRUE,
             'args' => array(
               array(
                 'name' => 'id',
                 'type' => 'int',
                 'description' => 'The id of the note to get',
                 'source' => array('data' => 'id'),
                 'optional' => FALSE,
                ),
              ),
    ),
    ),
    )

    );

    }

これで、バックエンドのRESTサービスでそのアクションを有効にする必要があります。以下のようにサービスを呼び出す必要があります http:// YOURSITE/SERVICE-END-POINT/new_note/note 詳細を確認してください この投稿

0
Moorthy