[Webman] qnnp/webman-route
不再更新!
建议配合第三方api文档管理工具(如:apifox,postman)进行开发
实现文档先行,前后端或者多端根据文档同步开发,使用api管理工具测试接口路由等
qnnp/webman-route 是一个基于 PHP8 注解开发的一个 Webman 插件。
快速开始
Command line
composer require qnnp/webman-route
示例
PHP
<?php
# file:/app/api/controller/index.php
namespace app\api\controller
use Qnnp\WebmanRoute\Module\Result;use support\Request;
use support\Response;
use Throwable;
use Qnnp\WebmanRoute\Attributes\Route;
class Index {
#[Route(
'./', // 路由 /api/test
middleware: [RequireLogin::class], // 加载中间件
get: [ // GET 方法各项参数
'orderBy' => [
get::schema => [
schema::enum => ['status', 'last_active_time', 'created_at']
]
],
'order' => [
get::schema => [
schema::enum => ['asc', 'desc']
],
get::example => 'desc',
],
'page' => [
get::example => 1,
get::schema => ['type' => 'integer']
],
'limit' => [
get::example => 10,
get::schema => [
schema::type => 'integer'
]
],
],
tags: ['测试分组'], // 路由分组
summary: '测试路由"/api/test"', // 路由描述
)]
public function test(Request $request):Response {
return Result::json('success');
}
}
SwaggerUI 显示效果
OpenAPI 结果
JSON
{
...,
"paths": {
"/api/test": {
"get": {
"summary": "测试路由\"/api/test\"",
"description": "",
"responses": {
"default": {
"description": ""
}
},
"tags": [
"测试分组"
],
"parameters": [
{
"in": "query",
"schema": {
"type": "string",
"enum": [
"status",
"last_active_time",
"created_at"
]
},
"name": "orderBy"
},
{
"in": "query",
"schema": {
"type": "string",
"enum": [
"asc",
"desc"
]
},
"example": "desc",
"name": "order"
},
{
"in": "query",
"schema": {
"type": "integer"
},
"example": 1,
"name": "page"
},
{
"in": "query",
"schema": {
"type": "integer"
},
"example": 10,
"name": "limit"
}
]
}
}
}
}
标签:
订阅评论
登录
0 评论