gin框架实现一个简单的项目 ③
对于一个项目来说,需要将各个功能模块分开,也就是所谓的三层模型,这里介绍一下个人的做法:
contorller主要负责路由
model主要负责程序输入输出的数据
service主要负责数据处理
utils主要负责存放通用的方法,比如连接数据库
代码如下:
project->index.go
- package main
- import (
- c "project/controller"
- "github.com/gin-gonic/gin"
- )
- func main() {
- r := gin.Default()
- rr := c.GinRouter(r)
- // 监听并在 0.0.0.0:8080 上启动服务
- rr.Run(":8080")
- }
project->controller->index.go
- package controller
- import (
- "fmt"
- "project/controller/second"
- "github.com/gin-gonic/gin"
- )
- func GinRouter(r *gin.Engine) *gin.Engine {
- rr := r.Group("/")
- rr.GET("/first", func(c *gin.Context) {
- fmt.Println("first .........")
- })
- rr = r.Group("/a")
- second.Routers(rr)
- return r
- }
project->controller->second->index.go
- package second
- import (
- "fmt"
- ms "project/model/second"
- ss "project/services/second"
- "github.com/gin-gonic/gin"
- )
- func Routers(r *gin.RouterGroup) {
- rr := r.Group("")
- rr.POST("/second", Function)
- return
- }
- func Function(c *gin.Context) {
- var input ms.Input
- if err := c.BindJSON(&input); err != nil {
- fmt.Println(err)
- }
- ss.Function(c, input)
- return
- }
project->model->second->index.go
- package second
- type Input struct {
- Id int `view:"id号" json:"id" from:"id"`
- }
project->services->second->index.go
- package second
- import (
- "fmt"
- ms "project/model/second"
- "github.com/gin-gonic/gin"
- )
- func Function(c *gin.Context, input ms.Input) {
- fmt.Println("second .........,input:", input.Id)
- return
- }
gin框架实现一个简单的项目 ③的更多相关文章
- 用IntelliJ IDEA学习Spring--创建一个简单的项目
这段时间想学习一下Spring,其实之前学过Spring,只是有些忘记了.而且之前学的时候是适用eclipse学习的,现在好像对IntelliJ这个工具使用挺多的,现在就学习一下这个工具的用法,顺便复 ...
- 《maven实战》笔记(2)----一个简单maven项目的搭建,测试和打包
参照<maven实战>在本地创建对应的基本项目helloworld,在本地完成后项目结构如下: 可以看到maven项目的骨架:src/main/java(javaz主代码)src/test ...
- Node.js基于Express框架搭建一个简单的注册登录Web功能
这个小应用使用到了node.js bootstrap express 以及数据库的操作 :使用mongoose对象模型来操作 mongodb 如果没了解过的可以先去基本了解一下相关概念~ 首先注 ...
- 使用go, gin, gorm编写一个简单的curd的api接口
go 是一门非常灵活的语言,既具有静态语言的高性能,又有动态语言的开发速度快的优点,语法也比较简单,下面是通过简单的代码实现了一个简单的增删改查 api 接口 hello world 常规版 新建 d ...
- 利用VisualStudio单元测试框架举一个简单的单元测试例子
本随笔很简单,不涉及mock和stub对象,而是只给出一个简单的利用Visual Studio单元测试框架的最简单例子.如果需要深入理解Unit Test的原理与艺术,请参考<The art o ...
- CodeIgniter框架——创建一个简单的Web站点(include MySQL基本操作)
目标 使用 CodeIgniter 创建一个简单的 Web 站点.该站点将有一个主页,显示一些宣传文本和一个表单,该表单将发布到数据库表中. 按照 CodeIgniter 的术语,可将这些需求转换为以 ...
- 软件----- idea 配置创建一个简单javase项目
1.显示工具栏和工具按钮,勾选上 如图,在左侧会增加对应的 2.设置项目结构,选择jdk 点击new 选择需要jdk 3.创建一个简单的java文件,和eclipse与myeslipse 差不多, ...
- vue-cli安装以及创建一个简单的项目(二)(vuex使用、发行一个简单的app)
1.vuex的使用 vuex是vue的状态管理中心,vuex来保存我们需要管理的状态值,值一旦被修改,所有引用该值的地方就会自动更新,常用于: 1.多个视图依赖同一状态(l例:菜单导航) 2.来自不同 ...
- vue-cli安装以及创建一个简单的项目(一)(Node\npm\webpack简单使用)
1.关系介绍 1.简单的说 Node.js 就是运行在服务端的 JavaScript. 2.NPM是随同NodeJS一起安装的包管理工具(新版的nodejs已经集成了npm),能解决NodeJS代码部 ...
随机推荐
- Python Log Viewer
https://pythonhosted.org/logview/
- EINVRES Request to https://bower.herokuapp.com/packages/ failed with 502
Bower install fails with 502 - Bad Gateway when downloading bower packages. For example bower instal ...
- jar启动脚本shell
#!/bin/bash#这里可替换为你自己的执行程序,其他代码无需更改 APP_NAME=/opt/server/msp/health-api/health-2.0.2.jar#使用说明,用来提示输入 ...
- python中 将数字转化为人民币的形式
def fn(args): """ 将金额转化为人民币模式,带逗号分隔,保留小数点两位,四舍五入 :param args: :return: ""&q ...
- 通用的调用WebService的两种方法。(调用别人提供的wsdl)(转)
转载自:http://blog.sina.com.cn/s/blog_65933e020101incz.html1.调用WebService的Client端采用jax-ws调用WebService:流 ...
- shell脚本安装python、pip--交互式的
首先把pip-.tgz 安装包放在 /usr/local 下面,按照顺序先安装pip,再安装python.不要先安装或只安装python,否则很容易出错, [root@bogon ~]# cat pi ...
- vue项目中导出Excel文件功能的前端代码实现
在项目中遇到了两种不同情况, 1.get请求导出文件,实现起来相对简单 // 导出数据 exportData() { window.location.href = `/oes-content-mana ...
- 高级UI-RecyclerView间隔线添加
上文讲到了RecyclerView的简单使用,知道RecycleView是怎么使用的了,那么这一节将基于上一届的内容继续改进,在ListView中很轻松就能实现的间隔线,在RecycleView中也需 ...
- nginx check健康检查
nginx利用第三方模块nginx_upstream_check_module来检查后端服务器的健康情况 大家都知道,前段nginx做反代,如果后端服务器宕掉的话,nginx是不能把这台realser ...
- [转载]ftp和http区别
本文围绕以下三个部分展开: 一.HTTP协议 二.FTP协议 三.HTTP与FTP的异同点 一.HTTP协议简介 1. 概念 HTTP: HyperText Transfer Protocal,超文本 ...