0
点赞
收藏
分享

微信扫一扫

4. gin路由

学习目标

  • httprouter
  • api参数
  • url参数
  • 表单参数
  • 路由组管理(同业务放同组,方便管理)
  • 路由组拆分和注册(业务的变化带来的技术变更)

 

httprouter

​​https://github.com/julienschmidt/httprouter​​

 

HttpRouter is a lightweight high performance HTTP request router

(Web Frameworks based on HttpRouter-> gin )

4. gin路由_html

 

api 参数

通过gin框架搭建web服务,获取api上的一些参数

4. gin路由_web服务_02

 

通过浏览器访问地址,返回的结果如下

4. gin路由_html_03

url 参数

例如: ​​http://localhost:8080/user?name=lisi​​

如何获取name的参数

 

4. gin路由_用户名_04

 

name有数据的时候:

4. gin路由_html_05

name 没有传递参数默认的数值:

4. gin路由_用户名_06

表单参数

登录时候,用户名/密码,提交参数给服务端,一般情况我们采用POST方式

  • HTML 创建一个表单
  • 启动gin框架Web服务
  • 用户提交post请求到Web服务(获取参数---> 业务处理 ---> 返回结果)

 

 

1、打开index.html 后(浏览器)

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<form action="http://localhost:8080/form" method="post" action="application/x-www-form-urlencoded">
用户名:<input type="text" name="username" placeholder="请输入你的用户名"> <br>
密   码:<input type="password" name="password" placeholder="请输入你的密码"> <br>
<input type="submit" value="提交">
</form>
</body>
</html>

 

 

 

 

2、启动Go Web服务

4. gin路由_web服务_07

 

 

3、点击提交按钮后的结果

4. gin路由_html_08

4. gin路由_用户名_09

路由组管理

router groups为了方便管理一些相关的url(某一类)

  • 商品操作url
  • 订单操作url
  • 登录操作url

 

业务相关的内容,我们可以放在一个组管理

 

4. gin路由_用户名_10

 

 

浏览器请求方式1:

4. gin路由_用户名_11

 

浏览器请求方式2:

4. gin路由_web服务_12

 

路由拆分和注册

从简单到复杂业务的演进,同大家看下演进路线,重点提供大家一种解决问题思路。

4. gin路由_web服务_13

demo1

下面最基础的gin路由注册方式,适用于路由条目比较少的简单项目或者项目demo。

demo2

当项目的规模增大后就不太适合继续在项目的main.go文件中去实现路由注册相关逻辑了,把路由部分的代码都拆分出来,形成一个单独的文件或包:在routers.go文件中定义并注册路由信息

demo3

当我们的业务规模继续膨胀,单独的一个routers文件或包已经满足不了我们的需求了

demo4

不同的业务代码拆分成不同的APP,在项目目录下单独定义一个app目录,用来存放我们不同业务线的代码文件,这样就很容易进行横向扩展。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

举报

相关推荐

gin路由

Gin路由组

Go-gin 路由

4. AQS

4.线程

4. Hystrix

day4|gin的中间件和路由分组

0 条评论