作者:ChainDesk韩小东
目标
1.完成Web应用
2.理解Goweb应用开发重点
任务实现
12.3.1 目录结构
通过业务层已经实现了利用 fabric-sdk-go 调用链码查询或操作分类账本状态,但是开发人员的工作不可能就此而止,需要考虑用户该如何使用此应用程序,一般情况下,交给用户使用的应用程序有以下两种方式:
桌面应用:传统实现方式,将应用程序打包成为一个可执行的安装程序之后,由用户安装在本地然后运行(可能需要特定的环境),进而进行相关操作。
Web浏览器应用:此方式相对于用户而言,非常方便,用户只需要在本地的浏览器中就可以使用应用程序的相关功能。
为了方便用户的操作使用,我们使用第二种方式来实现。以便于让用户通过浏览器就可以实现对分类账的操作。同样我们需要考虑应用程序后期的可扩展性及维护性,为此我们将应用程序进行了分层管理,设计增加了控制层及视图层。
视图层提供用户的可视界面与交互,控制层接收用户的请求,由控制层访问业务层,进而调用链码对分类账进行操作,之后将操作结果响应给客户端浏览器。
Go 语言本身提供了一个 Web 服务器来处理 HTTP 请求,并为 HTML 页面提供模板。下面我们来实现 Web 应用程序。
新建web目录,包含三个其他目录的目录。将使用 MVC(Model(模型)-View(视图) - Controller(控制器))模式使其更具可读性及扩展性、维护性。模型将是区块链部分,视图是模板,控制器由controllers目录中的功能提供。
FAQ
1.为什么要将客户端请求与响应的代码分开写在不同的文件中?
一个文件中的编写的代码不宜过多,如果合理设计,分开写在不同的文件中有利于提高代码的可读性还可以提高应用程序的可维护性与可扩展性。
2.路由指的是什么意思?
路由其实就是设定客户端不同的请求访问地址。
未经授权禁止转载、改编,转载请注明出处!
本文地址: https://www.chaindesk.cn/witbook/11/220
ChainDesk——全球区块链技术生态超级社区
以区块链技术为入口,搭建全球区块链技术生态超级社区,社区将服务于公链生态建设、DAPP项目研发、技术咨询、课程体系研发、区块链书籍编写,区块链课程制作、讲师培训、区块链职业教育、区块链线上教育、去中心化技术评测一体化的区块链技术超级社区。
免费·原创·专业·高效·系统
网友评论