码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 三、go微服务项目“商城项目实战开发”用户管理user-web端编写和登录校验


    文章目录

    • 商城项目实战开发user-web端编写和用户登录校验
      • 03、user-web接口的gin的整合和路由的搭建
      • 04、gin如何调用grpc接口
      • 05 登录接口安全性检验
    • 05、用户服务整合微服务注册中心组件—Nacos
    • 06、用户服务整合微服务配置中心组件—Nacos

    商城项目实战开发user-web端编写和用户登录校验

    03、user-web接口的gin的整合和路由的搭建

    这里实现的主要是用户管理的web-api,可以从server那边的接口获取到json参数信息。这里通过gin服务到grpc中获取,用户可以访问url接口(router中配置的)将json返回到前端页面

    在这里插入图片描述

    1.将user-srv目录下的一些文件复制到user-web中。

    config文件下的Args.go\config.go

    global文件下的global.go

    initalize文件下的args.go\config.go\zap.go\rpc.go

    resources文件下的application-dev.yaml\application-prod.yaml

    utils文件下的md5.go

    这些文件不做更改直接复制

    2.gin的整合(已封装并整合路由)

    package main
    
    import (
    	"fmt"
    	"go.uber.org/zap"
    	"kuangstudy-mall/apis/user-web/global"
    	"kuangstudy-mall/apis/user-web/initialize"
    )
    
    func main() {
       
    	// 解析命令行参数
    	initialize.InitArgs()
    	// 日志
    	initialize.InitLogger()
    	// 解析配置件
    	initialize.InitializeConfig()
    	// 初始化grpc的远程服务的链接
    	initialize.InitClient()
    	// gin 服务的封装和路由模块划分
    	Router := initialize.InitWebRouter()
        
        
    	err := Router.Run(fmt.Sprintf("%s:%d", *global.Args.IP, *global.Args.Port))
    	zap.S().Infof("gin服务端口是:%d,启动了", *global.Args.Port)
    	if err != nil {
       
    		zap.S().Panicf("gin服务端口是:%d,启动失败了", *global.Args.Port)
    	}
    }
    
    

    Router := initialize.InitWebRouter() 里面封装有gin框架

    initialize文件下router

    package initialize
    
    import (
    	"github.com/gin-gonic/gin"
    	"kuangstudy-mall/apis/user-web/router"
    	"net/http"
    )
    
    func InitWebRouter() *gin.Engine {
    	// 开始整合ginweb框架
    	Router := gin.Default()
        //初始一个页面测试
    	Router.GET("/ping", func(context *gin.Context) {
    		context.JSON(http.StatusOK, "pong")
    	})
    
    	// 配置跨域,身份鉴权
    
        
    	// 进行路由组的定义
    	//总路由
    	routerGroup := Router.Group("/api/v1")
    	//用户组
    	router.InitUserRouter(routerGroup)
    	//管理组
    	router.InitUserSMSRouter(routerGroup)
    	return Router
    }
    
    

    router文件下的路由划分

    package router
    
    import (
    	"github.com/gin-gonic/gin"
    	"kuangstudy-mall/apis/user-web/api"
    )
    
    func InitUserRouter(RouterGroup *gin.RouterGroup) {
       
    	userRouter := RouterGroup.Group("/user")
    	{
       
    		userRouter.GET("/list", (&api.UserApi{
       }).FindUserList)
    		userRouter.GET("/info/mobile", (&api.UserApi{
       }).GetUserInfoByMobile)
    		userRouter.GET("/info/id", (&api.UserApi{
       }).GetUserInfoById)
    		userRouter.GET("/info/:id", (&api.UserApi{
       }).GetUserInfoById2)
    		userRouter.POST("/toLogin", (&api.UserApi{
       }).ToLogin)
    		userRouter.POST("/reg", (&api.UserApi{
       }).Reg)
    	}
    }
    
    

    router文件下的sms路由划分

    package router
    
    import (
    	"github.com/gin-gonic/gin"
    	"kuangstudy-mall/apis/user-web/api"
    )
    
    func InitUserSMSRouter(RouterGroup *gin.RouterGroup) {
       
    	smsRouter := RouterGroup.Group("/sms")
    	{
       
    		smsRouter.GET("/list", (&api.UserApi{
       }).FindUserList)
    		smsRouter.GET("/info/mobile", (&api.UserApi{
       }).GetUserInfoByMobile)
    	}
    }
    
    

    访问对应的路径就会到api文件下对应的接口文件

    userRouter.GET(“/list”, (&api.UserApi{}).FindUserList)

    package api
    
    import (
    	"
  • 相关阅读:
    2022“杭电杯”中国大学生算法设计超级联赛(2)(持续更新)
    python使用moviepy剪切合并视频以及视频降噪
    浏览器控制台报错Failed to load module script:解决方法
    (王道考研计算机网络)第四章网络层-第六节:IP组播
    第八章 时序检查(中)
    华为浏览器,Chrome的平替,插件无缝连接
    【JavaScript 算法】二分查找:快速定位目标元素
    C++排序函数sort()和qsort()的参数比较函数的统一记忆方法
    Python库学习(九):Numpy[续篇三]:数组运算
    OpenCV项目开发实战--使用 EigenFaces 进行人脸重建 (含C++/Python源码)
  • 原文地址:https://blog.csdn.net/qq_48975137/article/details/139490850
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号