添加返回及RPC示例
This commit is contained in:
		
							parent
							
								
									c5f301b9ad
								
							
						
					
					
						commit
						f769f7ec02
					
				
							
								
								
									
										87
									
								
								app/Controller/TestController.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										87
									
								
								app/Controller/TestController.php
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,87 @@ | ||||
| <?php | ||||
| 
 | ||||
| declare(strict_types=1); | ||||
| 
 | ||||
| namespace App\Controller; | ||||
| 
 | ||||
| use App\Exception\BusinessException; | ||||
| use App\JsonRpc\UserExternalServiceInterface; | ||||
| use Hyperf\Di\Annotation\Inject; | ||||
| use Hyperf\HttpServer\Annotation\AutoController; | ||||
| use Hyperf\Utils\Collection; | ||||
| use Hyperf\Paginator\Paginator; | ||||
| 
 | ||||
| /** | ||||
|  * 示例控制器 | ||||
|  */ | ||||
| #[AutoController]
 | ||||
| class TestController extends BaseController | ||||
| { | ||||
|     /** | ||||
|      * @var UserExternalServiceInterface | ||||
|      */ | ||||
|     #[Inject]
 | ||||
|     protected UserExternalServiceInterface $userService; | ||||
| 
 | ||||
|     /** | ||||
|      * 返回数据示例 | ||||
|      * | ||||
|      * @return array | ||||
|      */ | ||||
|     public function index() | ||||
|     { | ||||
|         $data['user_id'] = 'test'; | ||||
|         return $data; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * 空返回示例 | ||||
|      * | ||||
|      * @return void | ||||
|      */ | ||||
|     public function empty() | ||||
|     {} | ||||
| 
 | ||||
|     /** | ||||
|      * 错误示例 | ||||
|      * | ||||
|      * @return mixed | ||||
|      */ | ||||
|     public function error() | ||||
|     { | ||||
|         throw new BusinessException(500, 'error'); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * 分页示例 | ||||
|      * | ||||
|      * @return Paginator | ||||
|      */ | ||||
|     public function page() | ||||
|     { | ||||
|         $currentPage = (int) $this->request->input('page', 1); | ||||
|         $perPage = (int) $this->request->input('per_page', 2); | ||||
| 
 | ||||
|         // 这里根据 $currentPage 和 $perPage 进行数据查询,以下使用 Collection 代替
 | ||||
|         $collection = new Collection([ | ||||
|             ['id' => 1, 'name' => 'Tom'], | ||||
|             ['id' => 2, 'name' => 'Sam'], | ||||
|             ['id' => 3, 'name' => 'Tim'], | ||||
|             ['id' => 4, 'name' => 'Joe'], | ||||
|         ]); | ||||
| 
 | ||||
|         $users = array_values($collection->forPage($currentPage, $perPage)->toArray()); | ||||
| 
 | ||||
|         return new Paginator($users, $perPage, $currentPage); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * RPC调用示例 | ||||
|      * | ||||
|      * @return array | ||||
|      */ | ||||
|     public function user_info() | ||||
|     { | ||||
|         return $this->getServiceResult($this->userService->getUserInfo()); | ||||
|     } | ||||
| } | ||||
| @ -4,6 +4,14 @@ namespace App\JsonRpc; | ||||
| 
 | ||||
| interface UserExternalServiceInterface | ||||
| { | ||||
|     /** | ||||
|      * 获取用户信息 | ||||
|      * | ||||
|      * @param string $name | ||||
|      * @return array | ||||
|      */ | ||||
|     public function getUserInfo(string $name = 'test') : array; | ||||
| 
 | ||||
|     /** | ||||
|      * 通过微信授权新建用户 | ||||
|      * | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user