辞职了有些空余时间,做了一个自动 PHP 自动生成 swagger 文档工具,零代码入侵。

2018-05-29 13:38:28 +08:00
 shisang

看一些自动生成 swagger 文档的工具,都是要在注释写一些特定的语法,本人有洁癖很难接受写一大坨奇怪语法的东西在注释里边,干脆就撸了一个自动生成 swagger 文档的工具,基于 php-parser语法树构建文档结构。

生成文档样例

文档详情:

https://github.com/eclogue/knight/tree/master/docs

github 项目

写得有些糙,目前 manjusaka 只针对courser 自动生成文档。manjusaka 会把大的 swagger 文档拆成若干个小的部分, 手动写过 swagger 文档的人应该知道一旦 api 接口过百,如果是单一个 yaml 文件大几千行,看一下就头疼更别说让人改。

小弟不才如果做得不对,欢迎大神斧正或者贡献代码。

因为是零入侵,所以不可能做的完美,有些地方还需要自己手动改,但已经节省了很大工作(准确的说需要定义 200 response 数据结构和 tag,security )。

入口文件:

---
swagger: '2.0'

################################################################################
#                              API Information                                 #
################################################################################
info:
  version: v0.1.1
  title: knight API
  description: |
    这是 knight 自动生成 API,仅限供参考。api 采用 rest 风格,正常情况下 response statusCode
    20x 为成功的返回,
    40x 为客户端错误,
    50x 为服务端错误,
    20x 返回 格式为 { message: 'OK', data: ... }
    非 20x 返回 { message: '错误描述', code: '详细请看 api 错误码'}
################################################################################
#                  Host, Base Path, Schemes and Content Types                  #
################################################################################
host: localhost
basePath: /
schemes:
  - http
produces:
  - application/json
consumes:
  - application/json
  - multipart/form-data
tags:
  - name: Auth
    description: 认证
  - name: Users
    description: 用户
paths:
  $ref: ./routers/index.yaml
definitions:
  $ref: ./definitions/index.yaml


2272 次点击
所在节点    分享创造
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/458628

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX