YAAG生成iris web框架项目API文档

API 生成步骤

  • 下载YAAG中间件

go get github.com/betacraft/yaag/…

  • 导入依赖包

import github.com/betacraft/yaag/yaagImport github.com/betacraft/yaag/irisyaag

  • 初始化yaag

yaag.Init(&yaag.Config(On: true, DocTile: "Iris", DocPath: "apidoc.html"))

  • 注册yaag中间件

app.Use(irisyaag.New())irisyaag记录响应主体并向apidoc提供所有必要的信息

目录结构

主目录iris

  1. —— apidoc.html (执行命令后生成)
  2. —— apidoc.html.json (执行命令后生成)
  3. —— main.go

代码示例

main.go

  1. package main
  2. import (
  3. "github.com/kataras/iris"
  4. "github.com/betacraft/yaag/irisyaag"
  5. "github.com/betacraft/yaag/yaag"
  6. )
  7. /*
  8. 下载包 go get github.com/betacraft/yaag/...
  9. */
  10. type myXML struct {
  11. Result string `xml:"result"`
  12. }
  13. func main() {
  14. app := iris.New()
  15. //初始化中间件
  16. yaag.Init(&yaag.Config{
  17. On: true, //是否开启自动生成API文档功能
  18. DocTitle: "Iris",
  19. DocPath: "apidoc.html", //生成API文档名称存放路径
  20. BaseUrls: map[string]string{"Production": "", "Staging": ""},
  21. })
  22. //注册中间件
  23. app.Use(irisyaag.New())
  24. app.Get("/json", func(ctx iris.Context) {
  25. ctx.JSON(iris.Map{"result": "Hello World!"})
  26. })
  27. app.Get("/plain", func(ctx iris.Context) {
  28. ctx.Text("Hello World!")
  29. })
  30. app.Get("/xml", func(ctx iris.Context) {
  31. ctx.XML(myXML{Result: "Hello World!"})
  32. })
  33. app.Get("/complex", func(ctx iris.Context) {
  34. value := ctx.URLParam("key")
  35. ctx.JSON(iris.Map{"value": value})
  36. })
  37. //运行HTTP服务器。
  38. //每个传入的请求都会重新生成和更新“apidoc.html”文件。
  39. //编写调用这些处理程序的测试,保存生成的apidoc.html,apidoc.html.json。
  40. //在制作时关闭yaag中间件。
  41. app.Run(iris.Addr(":8080"))
  42. }

提示

  • 运行上面的例子,并请求其中任意一个接口,会生成apidoc.htmlapidoc.html.json两个文件
  • 如果不关闭yaag中间件,apidoc.htmlapidoc.html.json文件会随着每一次请求而重新生成
  • 如果没有翻墙,可能看不到生成效果,因为apidoc.html文件的引入了很多谷歌的cnd,替换成功国内支持即可