跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Go / GolangSaaSWeChat

GoFly 框架接口命名规则与实现方法

GoFly 框架采用约定式路由自动注册接口,支持 GET、DELETE、PUT、GetPost 及默认 POST 请求方式。开发者可在现有业务文件中添加函数,或新建 Go 文件定义 Struct 并通过 init 函数注册路由。框架具备热编译能力,可动态加载接口,降低维护成本。

指针猎手发布于 2025/1/21更新于 2026/6/523 浏览
GoFly 框架接口命名规则与实现方法

GoFly 框架接口命名规则与实现方法

本文介绍 GoFly 快速开发框架新增接口及接口命名规则,通过示例说明在现有文件中添加接口和新建文件添加接口的开发方式。

接口命名规则

1. GET 请求命名

当接口以 Get 开头命名,比如 GetList、GetData、Get_list、Get 时,路由会将其注册为 get 请求。

2. DELETE 请求命名

当接口以 Del 开头命名,比如 DelArticle、DelData、Del 时,路由会将其注册为 delete 请求。

3. PUT 请求命名

当接口以 Put 开头命名,比如 PutArticle、PutData、Put 时,路由会将其注册为 put 请求。

4. GetPost 请求命名

当接口以 GetPost 开头命名,比如 GetPostArticle、GetPostData、GetPost 时,路由会将其注册为两个请求方式路径(GET 和 POST)。这种命名方式常用于微信公众号接收服务接口,验证有效时为 GET 请求,推送数据时为 POST 请求。

5. 默认是 Post 请求

除去以上 Get、Del、Put、GetPost 开头命名方式以外,系统将默认注册成 Post 请求方式。例如:Save、Status、DoMore、OnLink、Update 等都是 Post 请求。

6. 特别说明

由于 Go 语言规则,为了让其他 package 调用方法,首字母必须大写。然而接口为了满足驼峰命名规则,添加到路由上的地址时将命名的方法首字母改为小写。例如 GetList 变成 getList、DelArticle 变成 delArticle、PutArticle 变成 putArticle、GetPostArticle 变成 getPostArticle、Save 变成 save 等。

已有文件添加接口

在 app\business\article\cate.go 下存在 cate.go 文件,在原有文件里添加 Save 来保存添加文章分类数据,代码如下:

package article

import (
	"gofly/utils/gf"
)

type Cate struct{}

// 文章分类
func init() {
	fpath := Cate{}
	gf.Register(&fpath, fpath)
}

// 保存数据
func (api *Cate) Save(c *gf.GinCtx) {
	param, _ := gf.RequestParam(c)
	data, err := gf.Model("gf_article_cate").Save(param)
	if err != nil {
		gf.Failed().SetMsg("保存失败").SetData(err).Resp(c)
	} else {
		gf.Success().SetMsg("保存成功").SetData(data).Resp(c)
	}
}

这样就成功添加了 save 接口,路由自动加载,无需手动配置路由,避免手动添加产生路由冲突。

接口路由示例图

新增 go 文件添加接口

  1. 在 app/business/article 新建文件 comment.go。新增文件中添加 func 引入路由,包名(package)为 article,并用文件名 comment 作为路由名,代码如下:
package article

// 文章评论
import (
	"gofly/utils/gf"
)

// 路由标识要与文件名相同
type Comment struct{}

func init() {
	fpath := Comment{}
	gf.Register(&fpath, fpath)
}

其中 type Comment struct{} 和 fpath := Comment{} 中的 Comment 就是评论路由文件名,后面新增其他文件改成对应文件名称。

  1. 添加接口,添加获取评论列表和保存评论两个接口,分别命名为:GetList 和 Save,代码如下:
package article

// 文章评论
import (
	"gofly/utils/gf"
)

// 路由标识要与文件名相同
type Comment struct{}

func init() {
	fpath := Comment{}
	gf.Register(&fpath, fpath)
}

// 获取数据列表
func (api *Comment) GetList(c *gf.GinCtx) {
	param, _ := gf.RequestParam(c)
	list, err := gf.Model("gf_article_comment").Where("article_id", param["id"]).Fields("id,name").Select()
	if err != nil {
		gf.Failed().SetMsg("错误").SetData(err).Resp(c)
	} else {
		gf.Success().SetMsg("请求成功").SetData(list).Resp(c)
	}
}

// 保存数据
func (api *Comment) Save(c *gf.GinCtx) {
	param, _ := gf.RequestParam(c)
	data, err := gf.Model("gf_article_comment").Save(param)
	if err != nil {
		gf.Failed().SetMsg("保存失败").SetData(err).Resp(c)
	} else {
		gf.Success().SetMsg("保存成功").SetData(data).Resp(c)
	}
}

注意:函数前加 (api Comment),其中 Comment 是 type Comment struct{} 中 Comment,后面新增其他文件改成对应文件名。

到此新增文件及接口完成,在终端就看到新增路由了。

接口路由示例图

框架自动把你新增接口加到路由中,加上热编译,这样就可以边开发边测试,减少手动添加路由错误导致路由与实际接口文件路径对不上,后期找代码修改找不位置。自动加载就可以避免这些错误提高代码维护性,可读性。

框架目录结构

├── app # 应用目录
│   ├── admin # 后台管理应用模块(安装 saas 时存在)
│   ├── business # 业务端应用模块
│   ├── common # 公共应用模块
│   └── controller.go # 应用控制器
├── devsource # 开发静态资源 (安装界面)
├── resource # 静态资源及配置文件 - 发布应用带上
├── runtime # 运行时文件
├── tmp # 开发是使用 fresh 热编译 产生临时文件
├── utils # 框架核心代码及工具包
├── views # 前端 - 后台管理系统(Vue + ts)代码
├── go.mod # 依赖包管理工具
├── go.sum
├── main.go # main 函数
├── runner.conf #fresh 热编译配置文件
└── README.md # 项目介绍

目录

  1. GoFly 框架接口命名规则与实现方法
  2. 接口命名规则
  3. 1. GET 请求命名
  4. 2. DELETE 请求命名
  5. 3. PUT 请求命名
  6. 4. GetPost 请求命名
  7. 5. 默认是 Post 请求
  8. 6. 特别说明
  9. 已有文件添加接口
  10. 新增 go 文件添加接口
  11. 框架目录结构
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • Python 入门教程:核心特性、学习路线与实战建议
  • C++红黑树原理与实现详解
  • AI 在医疗领域的十大应用场景解析
  • Docker 镜像仓库基础与实战
  • 前端 math.js 快速上手入门教程
  • 卷积神经网络 CNN 深度解析:原理、数学表达、变体架构与工程实践
  • 基于 FastAPI 的 Web 上位机系统设计与实现
  • Linux 运行 Windows 程序指南:Wine、Proton 与虚拟化方案
  • GitHub 启用双因素身份验证 2FA 配置教程
  • C++ explicit 关键字详解
  • Harness Engineering:给 AI 套上缰绳的工程学
  • ComfyUI 节点式工作流实战:从零搭建 AI 绘画流程及 SDXL 配置
  • Qwen3+Qwen Agent 智能体开发实战:接入 MCP 工具详解
  • C++ 模板与 string 类使用指南
  • ROS2 机器人 URDF 建模指南
  • WorkBuddy 安装与使用指南:腾讯 AI 原生桌面智能体工作台
  • 基于视觉的增强现实特效技术详解
  • AI 绘画关键词网站效率提升实战:从数据预处理到模型加速
  • Python 数学建模基础语法与常用库应用指南
  • Python HTTP 请求库对比:requests、aiohttp 与 httpx

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online