示例是最好的文档,我们为大家准备了一个简单的 API
示例项目,大家可以通过示例项目源码更进一步学习框架使用。当大家在阅读示例项目的源码时有疑问的地方,请查阅开发手册中对应的模块文档。
项目介绍
我们以一个简单的基于 HTTP
的 API Service
为例来介绍如何使用 GoFrame
框架以及相应的 CLI
工具来开发一个接口项目。
代码地址: https://github.com/gogf/gf-demo-user
git clone https://github.com/gogf/gf-demo-user
请先尝试将此项目在本地运行起来。再接下来我们将会给大家介绍这个示例项目的一些细节。
要点介绍
接口定义
接口注册文件位于 api
目录下,由于该项目采用了规范路由注册方式,因此在API结构体的属性中包含一些 标签。其中结构体属性的 v
标签表示校验规则,请求参数进入 HTTP Server
后将会被自动执行校验(框架有非常强大的数据校验组件,更详细的介绍请参考章节: 数据校验)
框架中所有涉及到的标签请参考章节: 常见问题(FAQ)
路由注册
路由注册往往在 cmd
包中,在本项目中,仍旧采用灵活的分组路由注册方式。在部分路由中带有鉴权中间件,这部分路由需要鉴权后才能访问,感兴趣的小伙伴可以仔细研究下源码的实现原理。关于路由中间件的详细介绍请参考章节: 路由管理-中间件/拦截器
常量管理
项目的全局访问常量位于 internal/consts
包下,供项目所有的包全局可访问, 全局常量通过不同的文件以及名称命名前缀来区分不同的业务模块。需要注意的是,不建议所有的常量都丢到 internal/consts
下,非公开的常量建议放到对应的包下面闭环维护。
控制器定义
控制器往往不带有任何的业务逻辑,负责 API
接口数据结构的输入与输出,调用一个或多个 service
实现具体的业务逻辑。关于项目工程设计中各个部分的职责请参考章节: 工程目录设计🔥