router.go 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. // @APIVersion 1.0.0
  2. // @Title 弘则开放API接口
  3. // @Description 这是弘则开放API接口文档 <br/><br/><b>1、参数格式与调用方式:</b><br/>(1)接口传输的所有参数使用 UTF8 编码格式,包括签名。接口调用方式请以接口定义的方式进行调用。<br/>(2)接口地址(测试):http://8.136.199.33:8608/api/<br/>(3)如果是POST请求,那么header头请以Content-Type: application/json的方式请求<br/><br/><b>2、公共参数:</b><br/><table style="text-align:center"><tr><td style="border:1px solid">参数名</td><td style="border:1px solid">类型</td><td style="border:1px solid">是否必传</td><td style="border:1px solid">说明</td><tr><td style="border:1px solid">appid</td><td style="border:1px solid">string</td><td style="border:1px solid">是</td><td style="border:1px solid">开放平台给分配的appid</td></tr></tr><tr><td style="border:1px solid">nonce_str</td><td style="border:1px solid">string</td><td style="border:1px solid">是</td><td style="border:1px solid">随机字符串,最大32位长度,26位大小写字母a,b…z和数字组成</td></tr><tr><td style="border:1px solid">timestamp</td><td style="border:1px solid">int</td><td style="border:1px solid">是</td><td style="border:1px solid">系统时间戳 UNIX_TIMESTAMP格式;1970年到目前的秒数</td></tr><tr><td style="border:1px solid">sign</td><td style="border:1px solid">string</td><td style="border:1px solid">是</td><td style="border:1px solid">签名信息(签名规则查看第4节)</td></tr><tr><td style="border:1px solid">_page</td><td style="border:1px solid">int</td><td style="border:1px solid">否</td><td style="border:1px solid">请求页码</td></tr><tr><td style="border:1px solid">_page_size</td><td style="border:1px solid">int</td><td style="border:1px solid">否</td><td style="border:1px solid">每页请求返回数据数,最大不能超过100</td></tr></table> <br/><br/><b>3、公共返回参数:</b><br/><table style="text-align:center"><tr><td style="border:1px solid">参数名</td><td style="border:1px solid">类型</td><td style="border:1px solid">是否必传</td><td style="border:1px solid">说明</td></tr><tr><td style="border:1px solid">code</td><td style="border:1px solid">int</td><td style="border:1px solid">是</td><td style="border:1px solid">接口返回状态码</td></tr><tr><td style="border:1px solid">msg</td><td style="border:1px solid">string</td><td style="border:1px solid">是</td><td style="border:1px solid">提示信息(错误信息)</td></tr><tr><td style="border:1px solid">data</td><td style="border:1px solid">map</td><td style="border:1px solid">是</td><td style="border:1px solid">对应的业务数据</td></tr></table> <br/><br/><b>4、签名规则:</b><br/>(1)所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。<br/>(2)在stringA最后拼接上&secret=secretValue得到stringSignTemp字符串,并对stringSignTemp进行MD5运算,再将得到的字符串所有字符转换为大写,得到sign值signValue。<br/><br/><b>5、code状态码取值:</b><br/><table style="text-align:center"><tr><td style="border:1px solid">200</td><td style="border:1px solid">正常响应码</td></tr> <tr><td style="border:1px solid">400</td><td style="border:1px solid">业务处理失败响应码</td></tr> <tr><td style="border:1px solid">401</td><td style="border:1px solid">参数签名异常,检查下签名是否正常</td></tr></table>
  4. // @Contact pyan@hzinsights.com
  5. // @License Apache 2.0
  6. // @LicenseUrl http://www.apache.org/licenses/LICENSE-2.0.html
  7. package routers
  8. import (
  9. "github.com/beego/beego/v2/server/web/filter/cors"
  10. "hongze/hongze_open_api/controllers"
  11. "github.com/beego/beego/v2/server/web"
  12. )
  13. func init() {
  14. //解决跨域问题
  15. web.InsertFilter("*", web.BeforeRouter, cors.Allow(&cors.Options{
  16. AllowAllOrigins: true,
  17. AllowMethods: []string{"GET", "POST", "PUT", "DELETE", "OPTIONS"},
  18. AllowHeaders: []string{"Origin", "Authorization", "Access-Control-Allow-Origin", "Access-Control-Allow-Headers", "Content-Type"},
  19. ExposeHeaders: []string{"Content-Length", "Access-Control-Allow-Origin", "Access-Control-Allow-Headers", "Content-Type"},
  20. AllowCredentials: true,
  21. }))
  22. ns := web.NewNamespace("/api",
  23. web.NSNamespace("/company_user",
  24. web.NSInclude(
  25. &controllers.CompanyUser{},
  26. ),
  27. ),
  28. web.NSNamespace("/report",
  29. web.NSInclude(
  30. &controllers.ReportController{},
  31. ),
  32. web.NSInclude(
  33. &controllers.ReportControllerCommon{},
  34. ),
  35. ),
  36. web.NSNamespace("/en/report",
  37. web.NSInclude(
  38. &controllers.EnglishReportController{},
  39. ),
  40. ),
  41. web.NSNamespace("/sys_user",
  42. web.NSInclude(
  43. &controllers.Admin{},
  44. ),
  45. ),
  46. web.NSNamespace("/quanshi",
  47. web.NSInclude(
  48. &controllers.QuanShiControllerCommon{},
  49. ),
  50. ),
  51. web.NSNamespace("/yidong",
  52. web.NSInclude(
  53. &controllers.YiDongController{},
  54. ),
  55. ),
  56. web.NSNamespace("/wework",
  57. web.NSInclude(
  58. &controllers.WeworkController{},
  59. ),
  60. ),
  61. web.NSNamespace("/day_new",
  62. web.NSInclude(
  63. &controllers.DayNewController{},
  64. ),
  65. ),
  66. web.NSNamespace("/chart",
  67. web.NSInclude(
  68. &controllers.ChartController{},
  69. ),
  70. ),
  71. web.NSNamespace("/edb",
  72. web.NSInclude(
  73. &controllers.EdbController{},
  74. ),
  75. ),
  76. )
  77. web.AddNamespace(ns)
  78. }