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/submit
JSON 데이터 보내기
이제 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] 프레임워크 구축 사용에 대한 기본 소개입니다. 도움이 되셨으면 좋겠습니다!