看一些自动生成 swagger 文档的工具,都是要在注释写一些特定的语法,本人有洁癖很难接受写一大坨奇怪语法的东西在注释里边,干脆就撸了一个自动生成 swagger 文档的工具,基于 php-parser语法树构建文档结构。
文档详情:
https://github.com/eclogue/knight/tree/master/docs
写得有些糙,目前 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
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.