码迷,mamicode.com
首页 > 其他好文 > 详细

golang 接口开发入门01- 从0开始构建项目

时间:2018-10-01 10:35:13      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:json序列化   网络   字段名   blob   处理   参考   登录密码   不同   操作   

之前写了两篇golang开发入门文章,太过潦草,赶着10.1 放假的前夕,想着还是要认真对待自己写的东西,记录学习的点滴,以后也许会忘了现在学习的东西,但是好歹留下一些文字,同时也希望能给花时间读我博客的人真正有些帮助。

前期准备

因为golang 之前断断续续学过一点,所以现在就以开发一个用户管理这样简单的功能入手。如果你现在在看我的这篇文章,你需要要具备以下知识点

  • 1、golang 开发环境搭建
  • 2、golang 的基本语法
  • 3、面向对象和mvc开发思想

搭建项目

我使用eclipse作为开发工具,项目目录按照传统的mvc分层思想进行构建,结构如下:

src
 domain     -- 领域,其实就是用struct来表示一些对象
 store      -- 存储层,主要操作数据库
 web        -- 接口层,对外提供访问接口    
 main.go    -- 入口类

细心的朋友可能已经发现了,上面的结构少了业务层,这是因为刚开始我的用户管理只是简单的CRUD(增删改查)操作,没有复杂的逻辑,之后如果涉及更复杂的业务,会再添加业务处理层。我已经将代码上传到了github上,你可以点击hiuser访问,在项目src/v1.0.learn 目录下可以看到本篇文章涉及的所有代码,如果你发现了代码有任何不合理的地方,欢迎向我提出,在此先行谢过。

需求与设计

我假设的需求场景是这样的:现在有一个在线的文件浏览系统,这个系统不会有太多的使用用户,它的功能主要就是将服务器本地的一个文件目录映射到网络上,不同的用户登录后,都给他在目录下分配一个子目录,用户在这个子目录上可以上传下载文件,起到了一个简易的网盘作用。golang实际上有一个非常不错的开源项目已经实现了上述的需求,而且功能更加强大,它就是filebrower,本篇文章以及后续的更新,也是参考这个项目来学习的。

本章并不考虑需求中文件相关的部分,而是单独来看用户,首先这个系统会有一个管理员,他至少应该具有以下功能:

  • 1、他能能够创建其他人员,并且给他指定文件子目录;
  • 2、他能够查询所有人员及人员对应的目录;
  • 3、他可以修改人员对应的子目录;
  • 4、他可以删除人员;

不管是管理员还是普通用户,都应该可以:

  • 5、登录系统;
  • 6、登录后修改密码;

根据上述的几点需求,来设计一套restful接口,关于登录会在之后的文章中进行完善,本章实现用户的CRUD操作。详细的设计文档,可以到github上查看,地址:接口文档

开发实现

本系列使用boltdb数据库来存储用户的信息,关于boltdb的使用,我将在下一章中详细介绍;而对于接口的实现,先不使用任何框架,直接使用golang自带的http模块。

定义用户

在domain目录下新建个users.go文件,该文件来定义用户的详细信息;

// 用户实体
type User struct {
    // 主键
    Id    int    `json:"id"`
    Login string `json:"login"`
    // 用户登录名
    Name string `json:"name"`
    // 登录密码
    Password string `json:"-"`
    Path     string `json:"path"`
}

通过golang的struct(结构体)来定义用户对象,字段后面json:xxx标签的目的是自定义json序列化之后如何展示,通过json:login标识后最终接口返回的字段名称将会是login而不是默认的Login;通过添加json:"-",接口将不会将密码也一块返回。

存储层

golang 接口开发入门01- 从0开始构建项目

标签:json序列化   网络   字段名   blob   处理   参考   登录密码   不同   操作   

原文地址:https://www.cnblogs.com/ljgeng/p/9733780.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!