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