如有错误,希望指出,谢谢!
很低级的概念不清,大佬嘴下留情。
1.关于swag的注释
我的理解是这些注释是专门提供给Swagger UI界面测试使用的,根据注释内容告诉swag文档这个函数应该有哪些参数,从什么路由走,但实际并不直接影响函数,而是只影响Swagger UI界面。服务器运行中路由路径还是由路由层来处理,参数也是由*gin.Context来获取。
这些参数都对应这个页面上的内容。
http://localhost:8082/swagger/index.html
比如 :Swag注释里写的是路由是get,那swag UI上显示和测试的就是get方式的路由。
但是如果代码路由层方法实际只处理了同路由路径的POST方式,那么在Swag UI上测试发送的Get方式就会404。但运行服务器界面发出的是同路径的POST方法,就会被路由处理调用成功。
只有在路由层加上对应路由的Get处理,Swag UI上测试发送的Get方式才会被拿到,不会404。
除此以外还要把service代码里的获取post参数的方法c.Request.FormValue换成获取get参数的方法c.Query,才能处理get方式
所以 :Swag UI相当于一个Postman软件进行路由测试,其能够发送的路由路径和方式和参数由Swag注释决定,注释里的参数只是告诉UI界面应该有什么参数,并不是说在服务器运行路由过程中存储了什么参数。