Go - [gin] 프레임워크 구성의 기본 사용

I. 소개

Gin은 내장된 Go 라우팅을 사용하는 대신 httprouter를 사용하여 라우팅과 속도를 처리하는 빠른 Golang 웹 프레임워크입니다. 다음은 Gin 프레임워크의 구성 및 사용입니다.

2. Gin 프레임워크 설치

1. 다음 명령을 사용하여 컴퓨터에 Gin 프레임워크를 설치합니다.

go get -u github.com/gin-gonic/gin

그러면 Gin GitHub 저장소에서 최신 버전의 Gin 프레임워크가 설치됩니다.

2. Gin 애플리케이션 구축

Gin 애플리케이션을 구축하기 전에 Gin의 기본 아키텍처를 이해하겠습니다.

  • 라우터 : Gin 애플리케이션의 핵심 부분으로, HTTP 요청을 수신하고 요청의 경로 및 HTTP 메소드를 기반으로 올바른 핸들러로 라우팅합니다.
  • 핸들러 : HTTP 요청을 수신하고 HTTP 응답을 반환하는 Gin 애플리케이션의 비즈니스 로직 코드입니다.
  • 미들웨어 : HTTP 요청과 핸들러 사이에 발생하는 코드입니다. 인증, 로깅, 요청 처리 등과 같은 몇 가지 일반적인 작업을 완료하는 데 사용할 수 있습니다.

다음으로, 다음 경로를 사용하여 간단한 Gin 애플리케이션을 만듭니다.

GET /:返回“Hello World!”
GET /ping:返回“pong!”
POST /submit:返回HTTP请求的JSON数据

코드 예시는 다음과 같습니다.

package main

import (
	"github.com/gin-gonic/gin"
)

func main() {
    
    
	// 创建一个Gin路由器
	r := gin.Default()

	// 定义路由
	r.GET("/", func(c *gin.Context) {
    
    
		c.JSON(200, gin.H{
    
    
			"message": "Hello World!",
		})
	})

	r.GET("/ping", func(c *gin.Context) {
    
    
		c.JSON(200, gin.H{
    
    
			"message": "pong!",
		})
	})

	r.POST("/submit", func(c *gin.Context) {
    
    
		var json struct {
    
    
			Name string `json:"name"`
			Email string `json:"email"`
		}

		if err := c.Bind(&json); err == nil {
    
    
			c.JSON(200, gin.H{
    
    
				"message": "JSON received",
				"name":    json.Name,
				"email":   json.Email,
			})
		} else {
    
    
			c.JSON(400, gin.H{
    
    "error": err.Error()})
		}
	})

	// 启动Gin应用程序
	r.Run()
}

3. 진 애플리케이션 실행

다음 명령을 사용하여 위의 Gin 애플리케이션을 실행합니다.

go run main.go

4. 애플리케이션 테스트

그러면 localhost의 기본 포트 8000에서 Gin 애플리케이션이 시작됩니다. 실행할 때 포트를 지정할 수도 있습니다.

r := gin.Default()
r.Run(":8000")

이제 브라우저를 사용하여 다음 경로에 액세스할 수 있습니다.

http://localhost:8080/
http://localhost:8080/ping

POST 요청, http://localhost:8080/submitJSON 데이터 보내기

이제 Gin 프레임워크를 성공적으로 구축하고 사용했습니다. 더 많은 기능을 얻기 위해 더 많은 경로와 핸들러 기능을 애플리케이션에 추가할 수 있습니다.

3. 프로젝트 디렉토리 구조

1. 다음은 간단한 gin 프로젝트 디렉터리 예입니다.

├── app
│   ├── config
│   │   └── config.go
│   ├── controllers
│   │   ├── auth.go
│   │   └── user.go
│   ├── middleware
│   │   ├── auth.go
│   │   └── logger.go
│   ├── models
│   │   ├── user.go
│   │   └── db.go
│   └── routes
│       └── routes.go
├── main.go
└── go.mod

안에:

  • app - 애플리케이션의 모든 콘텐츠가 이 폴더에 저장됩니다.
  • config - 애플리케이션의 모든 구성을 저장합니다.
  • 컨트롤러 - 모든 컨트롤러 파일을 포함하며, 각 파일은 해당 경로를 처리합니다.
  • 미들웨어 - 미들웨어(예: 인증, 로깅)를 저장합니다.
  • 모델 - 데이터베이스 모델 및 데이터베이스 연결 구성을 저장합니다.
  • 경로 - 정의된 모든 경로를 저장합니다.
  • main.go - 애플리케이션의 진입점입니다.
  • go.mod - 애플리케이션에 필요한 종속성을 문서화합니다.

2. Gin 프로젝트의 일반적인 디렉터리 구조는 다음과 같습니다.

├── configs
│   ├── config.yaml
│   └── db.yaml
├── controllers
│   ├── auth_controller.go
│   └── user_controller.go
├── middleware
│   ├── auth_middleware.go
│   └── logger_middleware.go
├── models
│   ├── db.go
│   ├── user.go
│   └── ...
├── routes
│   └── routes.go
├── services
│   ├── auth_service.go
│   └── user_service.go
├── utils
│   ├── response.go
│   └── ...
├── main.go
└── README.md

안에:

  • configs 디렉터리에는 프로젝트의 구성 파일이 포함되어 있습니다.
  • 컨트롤러 디렉터리에는 컨트롤러 파일이 포함되어 있습니다.
  • 미들웨어 디렉터리에는 미들웨어 파일이 포함되어 있습니다.
  • 모델 디렉토리에는 모델(ORM) 파일이 포함되어 있습니다.
  • 경로 디렉토리에는 라우팅 파일이 포함되어 있습니다.
  • 서비스 디렉토리에는 서비스 파일이 포함되어 있습니다.
  • utils 디렉토리에는 여러 도구 파일이 포함되어 있습니다.
  • main.go 는 프로젝트의 엔트리 파일 README.md이자 프로젝트의 소개 파일입니다.

특정 프로젝트 구조는 프로젝트 규모, 기능 요구 사항 및 기타 요인에 따라 달라질 수 있습니다.

이상은 [gin] 프레임워크 구축 사용에 대한 기본 소개입니다. 도움이 되셨으면 좋겠습니다!

추천

출처blog.csdn.net/qq_43030934/article/details/131507503