GoFrame GoFrame Web开发

GoFrame 框架培训大纲 - 第13章:GoFrame Web开发

13.1 Web基础

13.1.1 HTTP协议详解

// HTTP请求抽象
type HTTPRequest struct {
   
   
    Method      string
    URL         *url.URL
    Proto       string
    Header      http.Header
    Body        io.ReadCloser
    ContentLength int64
    Host        string
    RemoteAddr  string
}

// HTTP响应抽象
type HTTPResponse struct {
   
   
    StatusCode  int
    Status      string
    Proto       string
    Header      http.Header
    Body        io.ReadCloser
    ContentLength int64
}

// RESTful资源结构
type Resource struct {
   
   
    ID          string
    Name        string
    CreatedAt   time.Time
    UpdatedAt   time.Time
    Links       map[string]string
}

13.1.2 Web应用架构

// 分层架构示例
type WebApplication struct {
   
   
    Router      *Router
    Controllers []Controller
    Services    []Service
    Repository  Repository
    Middleware  []Middleware
}

// 洋葱模型架构
type OnionArchitecture struct {
   
   
    Presentation Layer
    Application  Layer
    Domain       Layer
    Infrastructure Layer
}

13.2 路由与控制器

13.2.1 路由配置

package main

import (
    "github.com/gogf/gf/v2/frame/g"
    "github.com/gogf/gf/v2/net/ghttp"
)

func main() {
   
   
    s := g.Server()

    // 基本路由
    s.Group("/", func(group *ghttp.RouterGroup) {
   
   
        group.GET("/users", getUserList)
        group.POST("/users", createUser)
        group.GET("/users/:id", getUserByID)
        group.PUT("/users/:id", updateUser)
        group.DELETE("/users/:id", deleteUser)
    })

    // 路由参数绑定
    s.Group("/api", func(group *ghttp.RouterGroup) {
   
   
        group.Bind([]*ghttp.GroupRouter{
   
   
            {
   
   
                Type:    "GET",
                Route:   "/products",
                Handler: getProductList,
            },
        })
    })

    s.Run()
}

// 控制器示例
type UserController struct {
   
   
    g.Controller
}

func (c *UserController) Index() {
   
   
    c.Response.WriteJson(g.Map{
   
   
        "message": "User list",
    })
}

func (c 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老大白菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值