首页/ 学科题库/ gin/ 路由配置与RESTful风格专项测试
gin 模拟试卷

路由配置与RESTful风格专项测试

15 题 45 分钟 难度:★
  • HTTP方法路由注册
  • 路由分组与嵌套
  • 动态路由参数
  • RESTful API设计规范
  • 路由中间件绑定
  • 静态文件路由
  • 路由重定向
  • 路由优先级规则

试卷习题(15 题)

参考答案在文末
判断题
1
判断题

在RESTful API设计中,将版本号放在URL路径中(如/v1/users)是一种推荐的版本管理方式。

A

对

B

错

2
判断题

在Gin框架中,配置r.Static("/assets", "./public")后,访问/assets/images/logo.png会映射到服务器的./public/images/logo.png文件。

A

对

B

错

3
判断题

gin.New()和gin.Default()的区别在于,gin.Default()会自动附加Logger和Recovery中间件,而gin.New()创建的是不带任何中间件的纯净Engine实例。

A

对

B

错

4
判断题

在Gin框架中,同时注册r.GET("/users/:id")和r.GET("/users/:name")会导致路由冲突错误,因为两个动态参数路由在同一路径位置冲突。

A

对

B

错

单选题
5
单选题

以下哪种方式可以正确注册一个GET请求的路由?

A

r.HandleFunc("GET", "/users", handler)

B

r.GET("/users", handler)

C

r.Route("/users").GET(handler)

D

r.AddRoute("GET", "/users", handler)

6
单选题

在Gin中,路由定义为r.GET("/users/:id"),如何在handler中获取URL路径中的id参数?

A

c.Query("id")

B

c.Param("id")

C

c.Get("id")

D

c.PostForm("id")

7
单选题

在Gin路由中,以下哪个通配符可以匹配多级路径?

A

:path

B

*path

C

{path}

D

**path

8
单选题

在Gin框架中,以下哪个方法用于配置静态文件服务目录?

A

r.StaticFile("/static", "./assets")

B

r.Static("/static", "./assets")

C

r.LoadHTMLFiles("./assets")

D

r.ServeFile("/static", "./assets")

9
单选题

当同时定义以下路由时,请求GET /users/me会匹配哪个路由?

Go
r.GET("/users/:id", handlerA)
r.GET("/users/me", handlerB)
r.GET("/users/*action", handlerC)
A

handlerA(动态路由优先)

B

handlerB(静态路由优先)

C

handlerC(通配符路由优先)

D

报错,路由冲突

10
单选题

在Gin中,以下哪种方式可以实现HTTP重定向?

A

c.Redirect(301, "/new-path")

B

c.Location("/new-path")

C

c.Move("/new-path")

D

c.RedirectTo("/new-path")

11
单选题

以下哪个路由设计符合RESTful风格规范?

A

r.GET("/getUserById/:id")

B

r.GET("/users/:id")

C

r.GET("/api/v1/queryUser")

D

r.GET("/user-info/:id")

多选题
12
多选题

对于请求GET /users/123/profile?tab=settings&page=1,以下哪些方法可以正确获取参数?(路由定义为r.GET("/users/:id/profile"))

A

c.Param("id")获取"123"

B

c.Query("tab")获取"settings"

C

c.Query("page")获取"1"

D

c.Param("tab")获取"settings"

13
多选题

以下哪些HTTP方法与操作的对应关系符合RESTful规范?

A

GET用于获取资源,不应修改数据

B

POST用于创建新资源

C

PUT用于部分更新资源

D

DELETE用于删除资源

14
多选题

对于以下路由配置,请求GET /files/docs/readme.md会匹配哪些路由?(假设所有路由都能单独匹配)

Go
r.GET("/files/*filepath", handlerA)
r.GET("/files/:name", handlerB)
r.GET("/files/readme.md", handlerC)
A

最终匹配handlerA(通配符匹配多级)

B

最终匹配handlerB(动态参数匹配)

C

最终匹配handlerC(静态路由匹配)

D

如果只有handlerA,可以匹配

填空题
15
填空题

在Gin框架中,设计RESTful风格的用户订单API,路由定义为r.GET("/users/:userId/orders/:orderId"),请求GET /users/123/orders/456时,使用获取用户ID,使用获取订单ID。

参考答案
1.正确 2.正确 3.正确 4.正确 5.B 6.B 7.B 8.B 9.B 10.A 11.B 12.A;B;C 13.A;B;D 14.A;D 15.c.Param("userId");c.Param("orderId")
想在手机上在线作答这套卷子?
使用微信 卷王开发者小程序/App,首页顶部扫一扫识别二维码,即可限时作答并自动判分。
了解产品 App
← 上一套 请求参数绑定与校验专项测试 下一套 → 部署与配置管理专项测试