关于 REST API 和软件架构风格的建议

Suggestions on REST API & Software Architecture Style

首先我是学生,所以我需要知道化合物之间是如何相互作用的,也许以后下次我会用一个框架来做,但首先我需要做的知道如何从头开始构建软件。


我的项目将是 Web 和移动应用程序,所以我决定为两者创建一个休息 api...我将在 Native PHP.

中实现我的项目
class Controller
{
    public $view;
    public $model;
    public $dataAccess;

    public function __construct()
    {
        $this->view = new View();
        $this->model = new Model();
        $this->dataAccess = new DataAccess();
    }
}
class UserController extends Controller
{
    public function __construct()
    {
        $this->model->tableName = "users";
    }

    public function get($id)
    {
        if($id) 
        {
            $this->model->data = $this->dataAccess->selectById($this->model->tableName, $id);
            $this->view->render($this->model->data);
        }
        else
        {
            $this->view->renderError();
        }
        
    }
}
class Application 
{
    private function __construct()
    {}
    
    public static function run() 
    {
        $router = new Router();
        $router->get("/users/([0-9]+)", array("UserController", "get"));
        $router->run();
    }
}



我将附上当前阶段的简单实现以回顾我的想法。

https://github.com/mahmoudahmedd/i-am-asking-for-feedback

任何其他意见,我将不胜感激,最后谢谢。

很好的解决方案:学习顶级框架的基础应用程序。

  • Class 模型在模型内部使用 DataAccess
  • 模型必须扩展模型
  • 控制器包含 'action...' 方法来包装模型方法:'actionGet'、'actionCreate'、'actionDelete' 等。路由:namespace/controller/action,例如:api/user/get 调用 Controller\Api\User::actionGet().

例如:https://github.com/koseven/koseven/blob/devel/system/classes/KO7/Controller.phphttps://github.com/koseven/koseven/blob/devel/system/classes/KO7/Controller/Template.php