test.api 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. // syntax doc
  2. syntax = "v1" // syntax comment
  3. // import doc
  4. import "foo.api" // import comment
  5. import(
  6. // import group doc
  7. "bar.api" // import group comment
  8. )
  9. // info doc
  10. info(// info comment
  11. // author doc
  12. author: "songmeizi" // author comment
  13. // date doc
  14. date: 2020-01-04 // date comment
  15. // desc doc
  16. desc: "break line
  17. desc" // desc comment
  18. )
  19. type (
  20. FooBar struct{
  21. Foo int
  22. }
  23. // remove struct
  24. Bar {
  25. // vString
  26. VString string `json:"vString"`
  27. // vBool
  28. VBool bool `json:"vBool"`
  29. // vInt8
  30. VInt8 int8 `json:"vInt8"`
  31. // vInt16
  32. VInt16 int16 `json:"vInt16"`
  33. // vInt32
  34. VInt32 int32 `json:"vInt32"`
  35. // vInt64
  36. VInt64 int64 `json:"vInt64"`
  37. // vInt
  38. VInt int `json:"vInt"`
  39. // vUInt8
  40. VUInt8 uint8 `json:"vUInt8"`
  41. // vUInt16
  42. VUInt16 uint16 `json:"vUInt16"`
  43. // vUInt32
  44. VUInt32 uint32 `json:"vUInt32"`
  45. // vUInt64
  46. VUInt64 uint64 `json:"vUInt64"`
  47. // vFloat32
  48. VFloat32 float32 `json:"vFloat32"`
  49. // vFloat64
  50. VFloat64 float64 `json:"vFloat64"`
  51. // vByte
  52. VByte byte `json:"vByte"`
  53. // vRune
  54. VRune rune `json:"vRune"`
  55. // vMap
  56. VMap map[string]int `json:"vMap"`
  57. // vArray
  58. VArray []int `json:"vArray"`
  59. // vStruct
  60. VStruct FooBar `json:"vStruct"`
  61. // vStructPointer
  62. VStructPointer *FooBar `json:"vStructPointer"`
  63. // vInterface
  64. VInterface interface{} `json:"vInterface"`
  65. // inline
  66. FooBar
  67. }
  68. )
  69. @server(
  70. host: 0.0.0.0
  71. port: 8080
  72. annotation: "break line
  73. desc"
  74. )
  75. service foo-api{
  76. @doc("foo")
  77. @handler postFoo
  78. // foo
  79. post /foo (FooBar) returns (FooBar)
  80. @doc(
  81. summary: bar
  82. )
  83. @server(
  84. handler: postBar
  85. )
  86. post /bar (FooBar)
  87. @doc("foobar")
  88. @handler postFooBar
  89. /**
  90. * httpmethod: post
  91. * path: /foo/bar
  92. * reply: FooBar
  93. */
  94. post /foo/bar returns (FooBar)
  95. @doc("barfoo")
  96. @handler postBarFoo
  97. post /bar/foo // post:/bar/foo
  98. @doc("barfoo")
  99. @handler getBarFoo
  100. get /bar/foo returns (FooBar)
  101. }