概览
基础工作流
当一个 HTTP 请求被收到时,它首先会触发你预定义的访问点(Endpoint),每个访问点(Endpoint)都拥有自己的路由(Route)文件。
一个简单的路由(Route)访问点(Endpoint)
<?php
$router->get('hello', [
'uses' => 'Controller@sayHello',
]);
在用户发起一个请求 [GET] www.api.apiato.com/v1/hello 到访问点(Endpoint)之后,它会去调用定义好的控制器(controller)方法(sayHello)。
一个简单的控制器(Controller)方法
<?php
class Controller extends ApiController
{
public function sayHello(SayHelloRequest $request)
{
$helloMessage = Apiato::call(SayHelloAction::class);
$this->json([
$helloMessage
]);
}
}
这个方法通过接受一个请求类 SayHelloRequest 来自动判断用户是否具有权限。
仅当用户具有权限时,它才会进入函数体继续执行。
之后这个方法调用一个执行动作(Action)(SayHelloAction) 来处理业务逻辑。
一个简单的执行动作(Action)
<?php
class SayHelloAction extends Action
{
public function run()
{
return 'Hello World!';
}
}
在执行动作(Action)中可以做任何事情,然后返回一个结果(结果可以是一个对象,也可以是字符串或者任何内容)。
当执行动作(Action) 执行完毕,控制器(Controller)方法会准备好构建一个请求响应(Response)。
可以通过工具方法 json ($this->json(['foo' => 'bar']);) 来构建 Json 格式的请求响应(Responses)。
一个简单的用户响应(Response)
[
"Hello World!"
]