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

Php 我应该创建一个接口来统一端点在API中形成和输出响应的方式吗?,php,api,interface,lumen,Php,Api,Interface,Lumen,因此,我正在构建一个API体系结构,我对程序员实现API端点输出的方式感到震惊 问题是,可以有不同的方法来存储我将要输出的响应,我不知道是否值得制作一个接口并强制开发人员只使用一种方法 第一种情况,使用类属性 我们有一个控制器,它根据资源“用户”执行许多操作,然后在响应处理程序中,函数返回形成的响应: class LogInController implements ResponseInterface{ private $user; private function setUse

因此,我正在构建一个API体系结构,我对程序员实现API端点输出的方式感到震惊

问题是,可以有不同的方法来存储我将要输出的响应,我不知道是否值得制作一个接口并强制开发人员只使用一种方法

第一种情况,使用类属性

我们有一个控制器,它根据资源“用户”执行许多操作,然后在响应处理程序中,函数返回形成的响应:

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);
    }
}
第三种情况,我们将所有响应生成封装在一个函数上,但没有属性

在本例中,我们将实例化用户传递给响应处理程序

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);
    }
}
我应该让它打开,让程序员在实现时选择,还是强制实现它的方式(属性、参数、直接输出、响应处理程序下的输出…)