我应该创建一个接口来统一端点的形式并在API中输出响应吗?

时间:2016-09-06 08:33:47

标签: php api interface lumen

所以,我正在构建一个API架构,我对程序员实现API端点输出的方式感到震惊。

问题在于可以有不同的方式来存储我要输出的响应,并且不知道是否值得创建一个接口并迫使开发人员只使用一种方式。

第一种情况,使用类属性。

我们有一个控制器,它根据资源'user'进行许多操作,然后在响应处理函数中返回形成的响应:

class LogInController implements ResponseInterface{
    private $user;
    private function setUser(){...};
    private function checkThatToTheUser();{...}
    function LogInEndpoint(){
        $this->setUser();
        $this->checkThatToTheUser();
        return $this->handledResponse();
    }
    /**implemented function that doesn't
    take parameters as it has access
    to the class property that has the response formed*/
    function handledResponse(){
        $response = [
            'user_id' => $this->user->id
        ];
        return $this->APIResponse($response);
    };
}

第二种情况,直接调用响应管理器。

我们有一个控制器只能输出数据库中的一些数据,在这种情况下,数据库可以是集合或集合的集合。

class UserController{
    function get(){
        $users = User::paginate(20);
        return $this->APIReponse($users);
    }
    function getByID($id){
        $user = User::find($id);
        return $this->APIReponse($user);
    }
}

第三种情况,我们将所有响应生成封装在一个函数上但没有属性。

在这种情况下,我们将instanciated用户传递给响应处理程序。

class UserActionsController{
    private function get(){
        $user = User::find(1);
        return $user
    }
    private function getComplexThings($user){
        ...
        return $user;
    }
    function getComplextDataEndpoint(){
        $user = $this->get();
        $user = $this->getComplexThings($user);
        return $this->handledResponse($user);
    }
    function handledResponse($user){
        ...
        return $this->APIResponse($user);
    }
}

我应该让它打开并让程序员在实现的时刻选择或强制实现它的方式(属性,参数,直接输出,响应处理程序下的输出......)。

0 个答案:

没有答案