2017-03-23 16 views
0

내 나머지 API 서비스를 만들기 위해 apigility 1.4.1을 사용하고 있습니다. 내 경우-/users/[/ : user_id]/customAction과 같은 zend apigility의 리소스를 기반으로 작업을 만드는 방법

이 내 라우팅 URL 입니다/사용자/[/ : USER_ID]

을하고 난 GET http로 방법을 사용자 ID를 줄 때 하나 개 특정 사용자 정보가 나와 있습니다. 내가 모든 사용자 정보를 필요로 할 때

과 내가주고 가정/HTTP GET 방법으로 사용자

는 사용자 생성의 경우, 내가 HTTP POST 방법으로 요청 본문에/사용자 및 사용자의 세부 사항을 제공 할 것입니다.

나는 apigility가 HTTP 메소드를 기반으로 요청을 받기 위해 라우팅 및 리소스 클래스를 만들었 기 때문에 무엇보다 잘 작동합니다.

예를 들어, 단일 엔터티가있는 GET 메서드 인 경우이 메서드를 Resource 클래스에있는 메서드를 가져 오는 데 라우팅합니다. 요청 본문 데이터가있는 POST 메소드 인 경우 Resource 클래스의 메소드를 작성하기 위해이 메소드를 라우트합니다.

그러나,

내가 사용자와 같은 URL을 라우팅을 만들 필요가

/[/ : USER_ID]/reset_password

나는 곳으로 내 젠드 apigility 나머지 API를 창조자와 그것을 만드는 방법을 모른다 그 요청을 받고 자신의 컨트롤러를 만들어서 요청을받을 수있는 곳.

아무도 도와 주실 수 없습니까? 미리 감사드립니다.

답변

1

이 경우 RPC를 수행해야합니다. 다음은 구성의 예입니다

return array(
    'controllers' => array(
     'invokables' => array(
      'MyNameSpace\UserController' => 'MyNameSpace\UserController', 
     ), 
    ), 
    'router' => array(
     'routes' => array(
      'user' => array(
       //Your REST route 
      ), 
      'user-reset-password' => array(
       'type' => 'Segment', 
       'options' => array(
        'route' => '/user/:user_id/reset-password', 
        'defaults' => array(
         'controller' => 'MyNameSpace\UserController', 
         'action' => 'reset-password', 
        ), 
       ), 
      ), 
     ), 
    ), 
    'zf-rpc' => array(
     'MyNameSpace\UserController' => array(
      'http_methods' => array('POST'), 
      'route_name' => 'user-reset-password', 
     ), 
    ), 
    'zf-rest' => array(
     //Your REST config 
    ) 
); 

그리고 당신은 당신의 RPC에 대한 UserController 만들어야합니다 자세한 내용은

namespace MyNamespace; 

use Zend\Mvc\Controller\AbstractActionController; 

class UserController extends AbstractActionController 
{ 
    public function resetPasswordAction() 
    { 
     //Your action 
    } 
} 

docs

읽기를