Go-REST-API 项目教程

Go-REST-API 项目教程

1. 项目的目录结构及介绍

go-rest-api/
├── cmd/
│   └── main.go
├── config/
│   └── config.yaml
├── internal/
│   ├── handlers/
│   │   └── recipe_handler.go
│   ├── models/
│   │   └── recipe.go
│   └── store/
│       └── memory_store.go
├── pkg/
│   └── utils/
│       └── utils.go
├── go.mod
├── go.sum
└── README.md

目录结构介绍

  • cmd/: 包含项目的启动文件 main.go
  • config/: 包含项目的配置文件 config.yaml
  • internal/: 包含项目的内部逻辑代码,分为以下几个子目录:
    • handlers/: 处理HTTP请求的处理器。
    • models/: 定义数据模型的文件。
    • store/: 数据存储相关的逻辑。
  • pkg/: 包含项目的公共库代码,如工具函数等。
  • go.modgo.sum: Go模块依赖管理文件。
  • README.md: 项目说明文档。

2. 项目的启动文件介绍

cmd/main.go

main.go 是项目的启动文件,负责初始化配置、设置路由和启动HTTP服务器。以下是 main.go 的主要内容:

package main

import (
    "log"
    "net/http"
    "github.com/messagebird/go-rest-api/config"
    "github.com/messagebird/go-rest-api/internal/handlers"
)

func main() {
    // 加载配置
    cfg, err := config.LoadConfig("config/config.yaml")
    if err != nil {
        log.Fatalf("无法加载配置文件: %v", err)
    }

    // 设置路由
    http.HandleFunc("/recipes", handlers.RecipesHandler)

    // 启动HTTP服务器
    log.Printf("服务器启动在端口 %s", cfg.Server.Port)
    if err := http.ListenAndServe(":"+cfg.Server.Port, nil); err != nil {
        log.Fatalf("服务器启动失败: %v", err)
    }
}

主要功能

  • 加载配置: 通过 config.LoadConfig 函数加载配置文件 config.yaml
  • 设置路由: 使用 http.HandleFunc 设置 /recipes 路由的处理函数。
  • 启动HTTP服务器: 使用 http.ListenAndServe 启动HTTP服务器,监听配置文件中指定的端口。

3. 项目的配置文件介绍

config/config.yaml

config.yaml 是项目的配置文件,包含服务器端口等信息。以下是配置文件的内容示例:

server:
  port: "8080"

配置项介绍

  • server.port: 指定HTTP服务器监听的端口,默认为 8080

通过以上配置,项目可以根据不同的环境需求进行灵活配置。

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

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

抵扣说明:

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

余额充值