Documentation ¶
Overview ¶
Package apidoc RESTful API 文档生成工具
从代码文件的注释中提取特定格式的内容,生成 RESTful API 文档,支持大部分的主流的编程语言。
Index ¶
- Constants
- func Buffer(h *core.MessageHandler, o *build.Output, i ...*build.Input) (*bytes.Buffer, error)
- func Build(h *core.MessageHandler, o *build.Output, i ...*build.Input) error
- func CheckSyntax(h *core.MessageHandler, i ...*build.Input) error
- func Locale() language.Tag
- func Locales() []language.Tag
- func Mock(h *core.MessageHandler, data []byte, o *MockOptions) (http.Handler, error)
- func MockFile(h *core.MessageHandler, path core.URI, o *MockOptions) (http.Handler, error)
- func ServeLSP(header bool, t, addr string, timeout time.Duration, info, erro *log.Logger) error
- func SetLocale(tag language.Tag)
- func Static(dir core.URI, stylesheet bool, erro *log.Logger) http.Handler
- func Version(full bool) string
- type Config
- type MockOptions
- type Range
- type Server
Constants ¶
const ( // LSPVersion 当前支持的 language server protocol 版本 LSPVersion = lsp.Version // DocVersion 文档的版本 DocVersion = ast.Version )
Variables ¶
This section is empty.
Functions ¶
func Buffer ¶
Buffer 生成文档内容并返回
如果是文档语法错误,则相关的错误信息会反馈给 h,由 h 处理错误信息; 如果是配置项(o 和 i)有问题,则以 *core.Error 类型返回错误信息。
NOTE: 如果需要从配置文件进行构建文档,可以采用 Config.Buffer
func Build ¶
Build 解析文档并输出文档内容
如果是文档语法错误,则相关的错误信息会反馈给 h,由 h 处理错误信息; 如果是配置项(o 和 i)有问题,则以 *core.Error 类型返回错误信息。
NOTE: 如果需要从配置文件进行构建文档,可以采用 Config.Build
func CheckSyntax ¶
func CheckSyntax(h *core.MessageHandler, i ...*build.Input) error
CheckSyntax 测试文档语法
func Mock ¶
func Mock(h *core.MessageHandler, data []byte, o *MockOptions) (http.Handler, error)
Mock 根据文档数据生成 Mock 中间件
data 为文档内容; o 用于生成 Mock 数据的随机项,如果为 nil,则会采用默认配置项;
func MockFile ¶
func MockFile(h *core.MessageHandler, path core.URI, o *MockOptions) (http.Handler, error)
MockFile 根据文档生成 Mock 中间件
path 为文档路径; o 用于生成 Mock 数据的随机项,如果为 nil,则会采用默认配置项;
func ServeLSP ¶
ServeLSP 提供 language server protocol 服务
header 表示传递内容是否带报头; t 表示允许连接的类型,目前可以是 tcp、udp、stdio 和 unix; timeout 表示服务端每次读取客户端时的超时时间,如果为 0 表示不会超时。 超时并不会出错,而是重新开始读取数据,防止被读取一直阻塞,无法结束进程;
func SetLocale ¶
SetLocale 设置当前的本地化 ID
如果不调用此函数,则默认会采用 internal/locale.DefaultLocaleID 的值。 如果想采用当前系统的本地化信息,可以使用 github.com/issue9/localeutil.SystemLanguageTag 函数。
func Static ¶
Static 为 dir 指向的路径内容搭建一个静态文件服务
dir 为静态文件的根目录,一般指向 /docs 用于搭建一个本地版本的 https://apidoc.tools,默认页为 index.xml。 如果 dir 值为空,则会采用内置的文档内容作为静态文件服务的内容。
stylesheet 表示是否只展示 XSL 及相关的内容。
用户可以通过以下代码搭建一个简易的 https://apidoc.tools 网站:
http.Handle("/apidoc", apidoc.Static(...))
Types ¶
type MockOptions ¶
type MockOptions struct { Indent string // 缩进字符串 Servers map[string]string // 为文档中所有 server 以及对应的路由前缀。 SliceSize Range // 指定用于生成数组大小范围的数值 NumberSize Range // 指定用于生成数值数据的范围 EnableFloat bool // 是否允许生成浮点数 StringSize Range // 指定生成随机字符串的长度范围 StringAlpha []byte // 指定生成字符串可用的字符 URLDomains []string // 指定生成 url 类型数据时可用的域名,默认为 example.com EmailDomains []string // 指定生成 email 类型数据时可用的域名,默认为 example.com EmailUsernameSize Range // 指定生成 email 类型数据的用户名长度范围,默认 [3,8] ImageBasePrefix string // 图片的基地址 DateStart time.Time // 指定生成与时间相关的数值时的最小值 DateEnd time.Time // 指定生成与时间相关的数值时的最大值 // contains filtered or unexported fields }
MockOptions mock 的一些随机设置项
type Server ¶ added in v7.2.3
type Server struct { Status int // 默认值为 200 Path string // 文档在路由中的地址,默认值为 apidoc.xml ContentType string // 文档的 ContentType,为空表示采用 application/xml Dir core.URI // 除文档不之外的附加项,比如 xsl,css 等内容的所在位置,如果为空表示采用内嵌的数据; Stylesheet bool // 是否只采用 Dir 中的 xsl 和 css 等样式数据,而忽略其它文件 Erro *log.Logger // 服务出错时的错误信息输出通道,默认采用 log.Default() }
Server 用于生成查看文档中间件的配置项
Directories ¶
Path | Synopsis |
---|---|
Package build 提供构建文档的相关功能
|
Package build 提供构建文档的相关功能 |
cmd
|
|
apidoc
apidoc 是一个 RESTful API 文档生成工具 大致的使用方法为: apidoc cmd [args] 其中的 cmd 为子命令,args 代码传递给该子命令的参数。
|
apidoc 是一个 RESTful API 文档生成工具 大致的使用方法为: apidoc cmd [args] 其中的 cmd 为子命令,args 代码传递给该子命令的参数。 |
Package core 提供基础的核心功能
|
Package core 提供基础的核心功能 |
messagetest
Package messagetest 提供测试生成 message 相关的测试工具
|
Package messagetest 提供测试生成 message 相关的测试工具 |
internal
|
|
ast
Package ast 定义文档的抽象语法树
|
Package ast 定义文档的抽象语法树 |
ast/asttest
Package asttest 提供了一个合法的 ast.APIDoc 对象
|
Package asttest 提供了一个合法的 ast.APIDoc 对象 |
cmd
Package cmd 提供子命令的相关功能
|
Package cmd 提供子命令的相关功能 |
docs
Package docs 打包文档内容
|
Package docs 打包文档内容 |
docs/site
Package site 用于生成网站内容 包括网站的基本信息,以及文档的翻译内容等。
|
Package site 用于生成网站内容 包括网站的基本信息,以及文档的翻译内容等。 |
lang
Package lang 管理各类语言提取注释代码块规则的定义
|
Package lang 管理各类语言提取注释代码块规则的定义 |
lexer
Package lexer 提供基本的分词功能
|
Package lexer 提供基本的分词功能 |
locale
Package locale 提供了一个本地化翻译服务。
|
Package locale 提供了一个本地化翻译服务。 |
lsp
Package lsp 提供 language server protocol 服务
|
Package lsp 提供 language server protocol 服务 |
lsp/protocol
Package protocol 协议内容的定义
|
Package protocol 协议内容的定义 |
mock
Package mock 根据 doc 生成 mock 数据
|
Package mock 根据 doc 生成 mock 数据 |
node
Package node 处理 ast 中各个节点的结构信息 struct tag 标签属性分为 4 个字段,其中前三个是必填的: apidoc:"name,node-type,usage-key,omitempty" name 表示当前标签的名称,或是节点表示的类型; node-type 表示当前节点的类型,可以是以下值: - elem 表示这是一个子元素; - attr 表示为一个 XML 属性; - cdata 表示为 CDATA 数据; - content 表示为普通的字符串值; - meta 表示这个字段仅用于描述当前元素的元数据,比如元素的名称等; usage-key 指定了当前元素的翻译项; omitempty 表示当前值为空时,是否可以忽略。
|
Package node 处理 ast 中各个节点的结构信息 struct tag 标签属性分为 4 个字段,其中前三个是必填的: apidoc:"name,node-type,usage-key,omitempty" name 表示当前标签的名称,或是节点表示的类型; node-type 表示当前节点的类型,可以是以下值: - elem 表示这是一个子元素; - attr 表示为一个 XML 属性; - cdata 表示为 CDATA 数据; - content 表示为普通的字符串值; - meta 表示这个字段仅用于描述当前元素的元数据,比如元素的名称等; usage-key 指定了当前元素的翻译项; omitempty 表示当前值为空时,是否可以忽略。 |
openapi
Package openapi 实现 openapi 的相关数据类型 https://github.com/OAI/OpenAPI-Specification
|
Package openapi 实现 openapi 的相关数据类型 https://github.com/OAI/OpenAPI-Specification |
xmlenc
Package xmlenc 有关文档格式编解码处理
|
Package xmlenc 有关文档格式编解码处理 |