Go言語でPostgreSQLを操作するAPIサーバーを作ってみる

Go言語とは

Googleが開発したプログラミング言語.
1つのバイナリにできるので楽

早速やってみる

WebフレームワークはGinを使います.
Goのバージョンは1.8以上を使います.
まずはパッケージのインストールをしましょう!

go get github.com/gin-gonic/gin
go get github.com/lib/pq

コードはこんな感じになります

package main

import (
    "database/sql"
    "net/http"
    _ "github.com/lib/pq"
    "github.com/gin-gonic/gin"
)

func main() {
    db, err :=  sql.Open("postgres", "user=ユーザー名 dbname=DB名 password=パスワード sslmode=disable host=ホスト名")
    if err != nil {
        panic(err.Error())
    }
    defer db.Close()
    r := gin.Default()
    r.GET("/", func(c *gin.Context) {
        c.String(http.StatusOK, "Hello World")
    })
    r.GET("/user/:user", func(c *gin.Context) {
      db.Exec("insert into users (id) values(c.Param("user"))")
      c.String(http.StatusOK, "Hello World: " + c.Param("user"))
    })
    http.Handle("/", r)
}

go run main.goでローカルサーバーを起動します

これでhttp://localhost:8080/user/ユーザーidと叩くとuserテーブルにレコードが追加されます(実際はPOSTメソッドを使います)

実際に使うときはバリデーション関数とか挟んでいろいろしてやる感じですね
こんな感じで簡単にAPIサーバーが立てられるのでGo言語を試してみるのもいいですよ!