首页 > 其他分享 >基于GoFrame框架开发要点

基于GoFrame框架开发要点

时间:2023-05-20 10:12:48浏览次数:38  
标签:service 框架 dao go GoFrame api logic 要点 编写

Go语言对于初学者是有一定的门槛的,在学习完Go语言基础后,就感觉不知道下一步该如何学下去,本文以GoFrame最新框架来讲解一下如何开发一个项目。
首先我们要了解一下通过GoFrame框架脚手架自动生成的各个目录和文件的含义,我建议大家能吃透相关概念,比如数据模型、领域对象、业务接口,理解项目工程化,这样对于CV工程师来说,提高自身能力非常重要!

dao层用于数据访问,这是一层抽象对象,用于和底层数据库交互,仅包含最基础的 CURD 方法
model层是结构模型,是数据结构管理模块,管理数据实体对象,以及输入与输出数据结构定义。
model中的do是领域对象,用于dao数据操作中业务模型与实例模型转换,由工具维护,用户不能修改。
model中的entity是数据模型,数据模型是模型与数据集合的一对一关系,由工具维护,用户不能修改。

首先,我们通过gf init 项目名 -u,来新建一个项目,然后我们在mysql中设计好表结构,在hack/config.yaml里面配置好数据库的参数,通过 gf gen dao生成模型,生成的模型位置在dao/do/model下面。
我们继续定义接收和返回结构体,实现api层。接收结构体一般放在api/request下,返回结构体一般放在api/response/下面,也有分前后端目录的,视个人而异。
我们在cmd中注册Goods相关的路由,我们发现注册路由时,controller.Goods飘红,原因是我们还没有编写这个方法,我们需要通过编写logic层实现业务逻辑,通过配置goland插件,自动生成service代码。经测试我发现:在编写logic逻辑后,就自动在service层生成了对应的goods文件和方法,非常方便。我们要在service层生成RegisterXX()方法后,在对应的业务模块中加上接口的实现注入。

小提示:该方法每个业务模块加一次即可。
建议大家在编写完第一个logic方法后(或者说service层生成了RegisterXX方法后):
就在logic层的init函数中实现服务的注册;
然后去查看logic.go文件是否添加了相关的依赖,没有的话也可以手动添加一下;

我们查看logic目录下的logic.go文件,发现已经自动添加了我们本次编写的goods相关的import,这个文件的作用是:将接口的具体实现,在程序启动时执行注册。
咱们回过头来,继续编写controller层的代码,例如:我们参考官方提供的controller/user.go 实现了我们自己的 controller/goods.go的添加商品方法:

注意事项

  1. 生产环境配置文件位置:hack/config.yaml
  2. 发布后的配置文件路径是:manifest/config/config.yaml
  3. 需要在main.go 声明和导入使用的数据库
  4. mysql运行go get -u github.com/gogf/gf/contrib/drivers/mysql/v2
  5. 使用了internal目录,进行了约束。除了对外暴露接口的方法放在api目录,其他不需要对外的逻辑都要放在internal中

作者:扶程星云

标签:service,框架,dao,go,GoFrame,api,logic,要点,编写
From: https://www.cnblogs.com/DTCLOUD/p/17416808.html

相关文章

  • 使用ssm框架出现数据库连接问题
    java.sql.SQLException:Accessdeniedforuser'jdbc:mysql://localhost:3306/oa?useSSL=false&allo'@'localhost'(usingpassword:YES)或者是PublicKeyRetrievalisnotallowed查阅资料发现当publicKeyRetrievalisnotAllowed错误解决或依然会出现数据连接失败问......
  • 【若依框架】定时任务调用异步服务,实现每天定时发送钉钉消息通知
     https://blog.csdn.net/MS_SONG/article/details/129141498【若依框架】定时任务调用异步服务,实现每天定时发送钉钉消息通知后端实现思路实现步骤1.添加依赖2.配置DingTalkUtils工具类3.设置定时任务4.异步任务-发送钉钉消息5.配置白名单代码 后端实......
  • Mybatis框架1
    XML配置:MyBatis的配置文件包含了会深深影响Mybatis行为的设置和属性信息。配置文档的顶层结构如下:configuration(配置)properties(属性)settings(设置)typeAliases(类型别名)typeHandlers(类型处理器)objectFactory(对象工厂)plugins(插件)enviroment(环境配置)environment(环境变量)transactionMa......
  • abp框架Excel导出——基于vue
    @@abp到处excel https://blog.51cto.com/u_15162069/2747885https://www.cnblogs.com/JerryMouseLi/p/13399027.html abp框架Excel导出——基于vue 目录abp框架Excel导出——基于vue1.技术栈1.1前端采用vue,官方提供1.2后台是abp——aspnetboilerplate2.E......
  • Java开发 Shiro框架详解(轻松入门)
    ShiroShiro简介什么是Shiro?ApacheShiro是一个Java的安全(权限)框架。Shiro可以非常容易的开发出足够好的应用,其不仅可以用在JavaSE环境,也可以用在JavaEE环境。Shiro可以完成,认证,授权,加密,会话管理,Web集成,缓存等.官网:shiro.apache.org/官方文档十分钟快速入门:shiro.a......
  • 安全框架·shiro
    官网:shiro.apache.org目录:shiro 概念Shiro框架认证拦截实现Shiro 框架认证业务实现Shiro 中授权过程的实现授权业务DAO实现Shiro安全框架1. shiro概念:  Shiro是apache旗下一个开源的安全框架,可以将软件中安全认证相关的功能提取出来,实现用户身份认证,权限授......
  • Blazor实战——Known框架快速开始
    Known是基于C#和Blazor开发的前后端分离快速开发框架,开箱即用,跨平台,一处代码,多处运行。开源地址:https://gitee.com/known/Known1.安装项目模板并创建新项目打开命令行输入如下命令安装和创建。--安装模板dotnetnewinstallKnownTemplate--创建项目dotnetnewknow......
  • 老杜MyBatis框架从入门到精通(三)使用MyBatis完成CRUD
    mybatis做为目前国内最为流行的开源orm框架,我们平时在使用时会感受到其带来的诸多便利,但是很少去深入分析,mybatis源码代码量不多,功能丰富,是一个很好的学习样例,本系列文章就和大家一起来学习mybatis框架本系列笔记根据动力节点B站上老杜讲的mybatis教程整理~学习地址:https://www......
  • java-raft框架之atomix进行分布式管理
    共识算法在一个分布式的系统中,管理各个节点的一致性(共识)一直是个很有难度的问题。在近几十年的发展中,于1990年诞生的Paxos算法是其中最为经典的代表,并一统江湖数几十载。如著名的zookeeper、chubby都是基于Paxos算法的经典应用。不过Paxos算法的复杂度和难以理解性,也吸引了一些大佬......
  • express框架的基本使用
    express框架的基本使用1、express介绍express是基于Node.js平台的极简、灵活的WEB应用开发框架。简单来说,express就是一个封装好的工具包,封装了很多功能,便于开发WEB应用(HTTP服务)2、express使用2.1、express下载npmiexpress//导入constexpress=require('express');/......