Go Fiber 및 PlanetScale로 REST API 구축 - 1부
7414 단어 apiplanetscalego
소개
Fiber(gofiber.io)는 Nodejs의 Express와 마찬가지로 Go로 작성된 웹 프레임워크입니다. Fiber에는 미들웨어, API Ready, 템플릿 엔진, Websocket 지원, 속도 제한기 등과 같은 풍부한 웹 애플리케이션을 구축하기 위한 많은 기능이 내장되어 있습니다. 그들은 Go에서 가장 빠른 HTTP 엔진이라고 주장하는 엔진에 fasthttp을 사용했습니다.
오늘 우리는 Fiber로 간단한 REST API를 구축하고 이를 데이터베이스용 PlanetScale과 통합할 것입니다.
PlanetScale is serverless database platform for developers that built on top Vitess.
PlanetScale 설정
https://planetscale.com으로 이동하여 회원가입을 한 후 조직 등의 계정을 설정합니다. 그런 다음 PlanetScale CLI를 통해 데이터베이스를 생성합니다. 웹을 통해서도 데이터베이스를 생성할 수 있습니다.
CLI를 설정하는 방법을 설명하고 싶지는 않습니다. PlanetScale 팀이 매우 명확하게 설명했습니다. 설명서PlanetScale CLI를 확인하십시오.
CLI 설정에 성공하면
fiber-pscale
라는 데이터베이스를 생성하고 데이터베이스의 지역을 지정합니다. 나는 당신이 있는 곳에서 가까운 지역을 사용하는 것을 추천합니다. 제 경우에는 아시아 태평양 싱가포르를 사용하고 싶습니다. 지역 목록을 확인할 수 있으며 현재 6개 지역이 있습니다.$ pscale region list
NAME (6) SLUG ENABLED
------------------------ -------------- ---------
US East us-east Yes
US West us-west Yes
EU West eu-west Yes
Asia Pacific Mumbai ap-south Yes
Asia Pacific Singapore ap-southeast Yes
Asia Pacific Tokyo ap-northeast Yes
데이터베이스 생성
$ pscale database create fiber-pscale --region ap-southeast
Database fiber-pscale was successfully created.
애플리케이션 설정
go modules 을 사용할 것입니다. 먼저 빈 디렉토리를 만든 다음 모듈을 초기화합니다. 저장소 URL 또는 애플리케이션 이름을 사용할 수 있습니다. 이 경우 내 repo URL을 사용하고 있습니다.
mkdir fiber-pscale && cd fiber-pscale
go mod init github.com/maful/fiber-pscale
그런 다음 빌드할 패키지가 3개 있습니다. 패키지는 디렉토리를 의미합니다. thress 디렉토리를 생성합니다.
cmd
: 파이버를 초기화하고 PlanetScale 데이터베이스에 연결하기 위한 루트 응용 프로그램입니다handler
: 목록 데이터, 생성 등과 같은 라우팅에 대한 모든 핸들러를 포함합니다models
: 응용 프로그램의 데이터 구조를 포함합니다.mkdir cmd
mkdir handlers
mkdir models
Fiber 및 PlanetScale을 사용할 예정이므로 모듈을 설치합니다.
PlanetScale에 액세스하려면 Gorm이라는 Go의 ORM을 사용할 수 있으며 PlanetScale 데이터베이스는 최상위 Vitess(MySQL)에 구축되어 있으므로 MySQL 드라이버도 설치합니다.
# install fiber
$ go get -u github.com/gofiber/fiber/v2
# install gorm to connect to planetscale database
$ go get -u gorm.io/gorm
# mysql driver
$ go get -u gorm.io/driver/mysql
기본 핸들러
Fiber로 기본 핸들러를 작성하고 cmd 디렉토리 내에
main.go
라는 파일을 생성하고 이 스크립트를 추가합니다.package main
import (
"net/http"
"github.com/gofiber/fiber/v2"
"github.com/gofiber/fiber/v2/middleware/logger"
)
func main() {
app := fiber.New(fiber.Config{
AppName: "Fiber with Planetscale",
ServerHeader: "Fiber",
})
app.Use(logger.New())
app.Get("/", func(c *fiber.Ctx) error {
return c.Status(http.StatusOK).JSON(&fiber.Map{
"message": "Hello world",
})
})
app.Listen(":3000")
}
파이버 서버의 새 인스턴스를 생성하고 PORT 3000을 수신하고 터미널로 돌아가서 main.go를 실행합니다.
$ go run cmd/main.go
┌───────────────────────────────────────────────────┐
│ Fiber with Planetscale │
│ Fiber v2.18.0 │
│ http://127.0.0.1:3000 │
│ (bound on host 0.0.0.0 and port 3000) │
│ │
│ Handlers ............. 3 Processes ........... 1 │
│ Prefork ....... Disabled PID ............. 22443 │
└───────────────────────────────────────────────────┘
그런 다음
http://localhost:3000
에서 액세스할 수 있습니다. 아래는 curl 명령을 사용한 예입니다.$ curl --location --request GET 'http://localhost:3000'
{"message":"Hello world"}
GUI 사용을 선호하는 경우 Postman 또는 기타 유사한 소프트웨어를 사용할 수 있습니다.
Reference
이 문제에 관하여(Go Fiber 및 PlanetScale로 REST API 구축 - 1부), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/maful/build-rest-api-with-go-fiber-and-planetscale-part-1-44dp텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)