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 또는 기타 유사한 소프트웨어를 사용할 수 있습니다.

    좋은 웹페이지 즐겨찾기