# gin http restful项目生成 # 快速入门 go version > 1.2(应用go mod) git clone https://github.com/go-libraries/gin-restful cd gin-restful chmod +x ./build.sh $GOBIN/createGinProject -package=项目名 -path=项目路径 # 生成项目基本结构 ```go -base 基础文件 -config config.ini -handlers http处理回调 -logs 日志文件目录 -models 模型文件 -processes 可以理解为控制器对象 -routers 路由文件 go.mod main.go Readme.md ``` # 参数详解 ```go Usage of createMangoProject: -dsn string connection info names dsn -h this help -help this help -package string package name use all project -path string project build in this path -port string port ``` # 二次开发详解 ## 控制器 1. 可以在services中书写新的控制器 ```go type UserSaveService struct { base.Controller Account *UserSaveRequest } func (u *UserSaveService) Decode() base.IError { // 解析 输入字段 如下 u.Account = &UserSaveRequest{&models.UserAccount{}, ""} if bt, err := u.Ctx.GetRawData(); err == nil { if err := json.Unmarshal(bt, u.Account); err != nil { return base.NewError(err) } } else { return base.NewError(err) } return nil } func (u *UserSaveService) Process() base.IError { //todo:执行业务过程 return nil } ``` 2. 可以在controllers中注入执行方法 ```go func SaveUser(c *gin.Context) { p := &base.Controller{} p.ServiceFun = func(u *base.DefaultService) base.IError { u.Data = "hello world" return nil } base.RunService(p, c) } ``` ## 路由 路由可以开发二次中间件功能 ```go package routers import ( "github.com/gin-gonic/gin" "time" "{{package}}/base" ) type Route struct { Name string Method string Path string HandlerFunc gin.HandlerFunc } func calTime(fn func(c *gin.Context)) func(c *gin.Context) { return func(c *gin.Context) { start := time.Now() fn(c) base.Log.Printf("Done in %v (%s %s)\n", time.Since(start), c.Request.Method, c.Request.URL.Path) } } func init() { //Router.GET("/", func(c *gin.Context) { // time.Sleep(5 * time.Second) // c.String(http.StatusOK, "Welcome Gin Server") //}) for _, route := range getUserRoutes() { handle := calTime(route.HandlerFunc) base.Gin.Handle(route.Method, route.Path, handle) } //todo: add other Routes } ``` ## 模型 默认使用gorm作为数据驱动,如果初始化--dsn项目不为空,会自动将该db下表生成模型并提供基础方法 外部库详见 [外部库-模型生成器](https://github.com/go-libraries/genModels) ## 文档 文档使用swagger进行配置,可以一键生成 详见
一、RESTful API是什么 REST是Representational State Transfer的简称,中文翻译为“表征状态转移”或“表现层状态转化”,通俗一点的话就是RESTful是一种风格,通过四个HTTP动词GET,POST,PUT,DELETE对服务器资源进行操作,用传统API和RESTful API做个对比图: 传统请求方式 传统URL RESTful 请求方式 RESTful
虽然,当前go语言的rest框架比较多,其中比较有名的有beego, gin等。但是这些框架相对来说都有点太重,而Kubernetes中使用的go-restful框架是一个轻量级的框架,能够满足大多数restful程序开发中的需求,本文对项目中使用go-restful框架中使用到的基本概念和使用方式做了简单的整理,如有不当之处,请不吝赐教。 基本概念 go-restful 框架中最基础的几个概念包
使用Go和Gin开发Restful API 学习笔记自存,希望也能对您有所帮助,欢迎大神批评指教。 官方文档:Tutorial: Developing a RESTful API with Go and Gin - The Go Programming Language 简介 Gin是一个golang的微框架,封装比较优雅,API友好,源码注释比较明确,具有快速灵活,容错方便等特点 对于golan
生命不止,继续 go go go !!! 先插播一条广告,给你坚持学习golang的理由: 《2017 软件开发薪酬调查:Go 和 Scala 是最赚钱的语言》 言归正传! 之前写过使用golang实现简单的restful api相关的博客: Go实战–实现简单的restful api(The way to go) 其中,使用了github.com/gorilla/mux,今天要跟大家介绍的是gi
Swagger Api框架 RestFul Api文档在线自动生成工具——>Api文档与API定义同步更新 直接运行,可以在线测试API接口 安装: #1、安装swag $ go get -u github.com/swaggo/swag/cmd/swag #2、在go 项目中(包含main.go)的目录,使用swag init命令生成相关文件。 $ swag init #运行后发现在docs
问题内容: 我正在使用Go gin框架Go gin 我有状态码:200,但是在OPTIONS请求之后什么也没有发生。好像我错过了什么,但我不明白我在哪里错了。 有谁能够帮我? 问题答案: FWIW,这是我的CORS中间件,可满足我的需求。
本文向大家介绍基于gin的golang web开发:路由示例详解,包括了基于gin的golang web开发:路由示例详解的使用技巧和注意事项,需要的朋友参考一下 Gin是一个用Golang编写的HTTP网络框架。它的特点是类似于Martini的API,性能更好。在golang web开发领域是一个非常热门的web框架。 启动一个Gin web服务器 使用下面的命令安装Gin 在代码里添加依赖 快
Gin 是一个 JSON-API 框架,目前还处于早期开发状态。 当你需要在性能和伸缩性要求很高时,Gin 对你会很有帮助。它运行于 OpenResty ,使用 Lua 编写。 下面是一个简单的 Gin 控制器: local InfoController = {}function InfoController:whoami() return 200, { name = 'gin' }endreturn InfoController
rk-gin 是提供 Gin 框架中间件以及快速启动器,可以通过 YAML 文件的形式,快速启动 Gin 框架微服务。 提供的功能 功能 描述 通过 YAML 启动服务 用户可以通过定义 YAML 文件,快速启动基于Gin 框架微服务。 通过代码启动服务 用户可以通过调用代码函数,快速启动基于Gin 框架微服务。 启动 Swagger UI 用户可以通过 YAML 文件,无代码启动 Swagge
Gin 是一个用 Go 语言开发的 Web 框架,提供类 Martini 的 API,但是性能更好。因为有了 httprouter 性能提升了 40 倍之多。 $ cat test.go package mainimport ( "net/http" "github.com/gin-gonic/gin")func main() { router := gin.Default()
Gin-vue-admin是一个基于vue和gin开发的全栈前后端分离的后台管理系统,集成jwt鉴权,动态路由,动态菜单,casbin鉴权,表单生成器,代码生成器等功能,提供多种示例文件,让您把更多时间专注在业务开发上。 项目文档 在线文档 : https://www.gin-vue-admin.com/ 从环境到部署教学视频 开发教学 (贡献者: LLemonGreen And Fann) 前端