想搞一个(或者已经有了)参数验证+生成文档的整套组件

之前写过一个在 easyswoole 里内置文档的东西,在公司的 easyswoole 项目里用的。

实现的效果就是在控制器方法上使用注释来标记参数,在 onRequest 时用反射类读取注释,验证参数,再正常进业务层。

/**
* @Apiname 列表
*
* @Param type {"type": "int", "desc": "类型"}
* @Param order_by {"type": "string", "desc": "排序方式"}
* @Param page {"type": "int", "default": "1", "desc": "第几页"}
* @Param limit {"type": "int", "default": "20", "desc": "每页几个"}
*
* @Apidesc 一个列表接口
*
*/

然后是生成文档的部分。使用读取文件和字符串处理的方式,获取到整个路由表。再根据路由对应的控制器和方法,找对应的注释,根据注释里的内容生成文档。最后生成的效果是这样的:

想搞一个(或者已经有了)参数验证+生成文档的整套组件

接下来的事情,想要生成一个链接,对接 yapi 或 postman。这样就完成了写路由的同时自动生成接口文档。

这一整套的事情想要整合成一个库(或者是已经有了),库的主要功能是路由,然后自动生成文档。文档可以有几种形式,在线查看、对接swagger(生成个链接)、对接 postman (生成json)。

从前从前,有个人爱你很久
thebestxt
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 5

有时候想,这个写在控制器的方法好还是写在路由的注释上

2年前 评论
thebestxt

@yangjisen 更倾向于写在控制器方法上。这个注释描述的是接口的功能和参数,这是符合控制器属性的。路由文件里除了路由本身的内容以外就不应该更多写别的信息了,更多的让路由更像一个「表」。

2年前 评论

type 和 desc 可以用原本的,剩下的再扩充

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!