LoginSignup
2
0

More than 3 years have passed since last update.

ひっまやなぁ GW中にREST APIをお手軽に実装できる言語とフレームワークとかないよなぁ

Last updated at Posted at 2019-05-15

ITTL勉強会1日目の記事です。

あるよ

package main

import "github.com/kataras/iris"

func main() {
    app := iris.Default()
    app.Get("/ittl", func(ctx iris.Context) {
        ctx.JSON(iris.Map{
            "message ": "GWはirisとgo",
        })
    })
    app.Run(iris.Addr(":8080"))
}

どーせありきたりなスクリプト言語やろ

それではこちらを、ご覧ください。
ベンチマーク
https://github.com/kataras/iris より引用

そう、Go言語はありきたりなスクリプト言語じゃない。軽量×お手軽×ハイパフォーマンスを描いた最高の言語なんだよ!
コンパイル言語だからバイナリを配布するだけで、実行可能!勉強しない方がおかしいねw
さぁみんなも乗り遅れないで!Golangで検索ゥー!

Go言語とは

Windows、macOS、Linux用でコンパイル可能なプログラミング言語。OSSで開発されており、Googleの中の人によって設計されました。ver1.11からWebAssemblyのサポートも開始。

irisとは

Go言語のWebフレームワーク。今回はこちらのフレームワークを利用し、解説を行います。

マイナー言語?

A. メジャー言語
動画配信サイトのAbemaTVでも採用するほどハイパフォーマンス。
https://speakerdeck.com/miyukki/the-background-of-video-distribution-in-abematv-during-one-year?slide=15

Go言語の基礎

こちらの記事に綺麗にまとまっていたので、参考にしてください。
特に宣言の「:=ってなんやねん、=とちゃうんか!」ってなると思うのでここだけ引用しておきます。

// 宣言した後、値を代入パターン
var msg string
msg = "hello world"

// 宣言と代入を一緒にするパターン

var msg string = "Hello World"

// 宣言と代入を一緒にするパターン (型省略可能)
var msg = "Hello Hello"

// 宣言と代入を一緒にするパターン (var省略)
msg := "Super Hello"

DBと接続

MongoDBと接続するコードです。
小技として、import文をかっこで囲うと一括でimportしてくれます。

package main

import (
    "github.com/kataras/iris"
     mgo "gopkg.in/mgo.v2"
    "gopkg.in/mgo.v2/bson"
)

type Human struct {
    NAME string `json:"name"`
    PLANS Plan[] `json:"plans"`
}

type Plan struct {
    PLAN_NAME stirng `json:plan_name`
}

func main() {
    // Webサーバ立ち上げ
    app := iris.Default()

    // DB接続
    session, _ := mgo.Dial("mongodb://localhost/test")
    // Webサーバ終了時にセッション破棄
    defer session.Close()
    // セッション確立
    db := session.DB("test")

    app.Get("/schedule", func(ctx iris.Context) {
        // DBからの戻りを買う脳する変数
        schedules := []Human{}
        // DBに問い合わせ
        err := db.C("card").Find(bson.M{}).All(&schedules)
        if err != nil {
            // err発生
        }
        // JSONに詰め込みクライアントに返却
        ctx.JSON(cardInfo)
    }

    app.Run(iris.Addr(":8080"))
}

最後に

Go言語は少し癖がありますが、慣れてしまえば今まで以上に高速にWeb開発ができると思います。今回はREST APIでしたが、View部も実装することは可能です。ぜひこの機会にGo言語を習得してみてはいかがでしょうか。急ぎ足で解説したので、疑問点があればお問い合わせください。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0