zoukankan      html  css  js  c++  java
  • Golang入门教程(十一)beego 框架之RESTful Controller 路由

    官方文档:https://beego.me/docs/mvc/controller/router.md

      什么是路由设置呢?前面介绍的 MVC 结构执行时,介绍过 beego 存在三种方式的路由:固定路由、正则路由、自动路由,接下来详细的讲解如何使用这三种路由。

      在介绍这三种 beego 的路由实现之前先介绍 RESTful,我们知道 RESTful 是一种目前 API 开发中广泛采用的形式,beego 默认就是支持这样的请求方法,也就是用户 Get 请求就执行 Get 方法,Post 请求就执行 Post 方法。因此默认的路由是这样 RESTful 的请求方式。

    这里写两个控制器base.go 和mian.go

    base.go

    package controllers
    
    import (
    	"github.com/astaxie/beego"
    )
    
    type BaseController struct {
    	beego.Controller
    }
    
    func (this *BaseController) Get() {
    	this.Data["Website"] = "beego.me"
    	this.Data["Email"] = "astaxie@gmail.com"
    	this.TplName = "main/index.html"
    }
    
    func (this *BaseController) Post() {
    	this.Ctx.WriteString("This is Post request this") // echo
    }

    main.go

    package controllers
    
    type MainController struct {
    	BaseController
    }
    

    上面的代码显示首先我们声明了一个控制器 BaseController,这个控制器里面内嵌了 beego.Controller,这就是 Go 的嵌入方式,也就是 BaseController 自动拥有了所有 beego.Controller 的方法。同时控制器 MainController,里面内嵌了 BaseController,这也就是 MainController 自动拥有了所有 BaseController 的方法(新增的Get() 和Post() 方法)

    配置路由 router.go

    package routers
    
    import (
    	"webcodec/controllers"
    	"github.com/astaxie/beego"
    )
    
    func init() {
    	// GET 请求
    	beego.Router("/", &controllers.MainController{}, "get:Get")
    
    	// POST 请求 http://127.0.0.1:8080/api/list
    	beego.Router("/api/list",&controllers.MainController{},"post:Post")
    }
    

    说明:使用GET 请求方式请求Get() 方法,同理使用POST 请求方式请求Post() 方法。如果使用Get请求方式去请求Post()方法,则会提示(匹配不上):

    Web页面请求结果

    使用PostMan 模拟Post请求

     

     

     

     

     

  • 相关阅读:
    论文引用标记设置
    悬浮图层特效
    SocketInputStream.socketRead0引起线程池提交任务后,futureTask.get超时
    线程池中的线程何时死亡?
    AppClassLoader
    《Java高并发编程详解-多线程架构与设计》Java Classloader
    Tomcat的类加载器初步认识
    《Java高并发编程详解-多线程架构与设计》Thread API
    《Java高并发编程详解-多线程架构与设计》JVM类加载器
    SpringMVC中的RootWebApplicationContext与ServletWebApplicationContext
  • 原文地址:https://www.cnblogs.com/tinywan/p/8557821.html
Copyright © 2011-2022 走看看