見出し画像

golang irisフレームワークの使い方 簡単にAPIサーバーを構築する

今回はgolangのirisフレームワークの使い方について解説していきます。


irisとは

irisは高速かつ開発において便利な機能を多く備えたWebアプリケーションフレームワークです。
GoのWebフレームワークの中でも特にパフォーマンスに優れているのが特徴です。


irisのインストール方法

risのインストールを行うには以下のコマンドを実施します。

go get github.com/kataras/iris/v12@latest


Webサーバーの作成

新しいファイルmain.goを作成し、以下のコードを記述します。

package main

import (
    "github.com/kataras/iris/v12"
)

func main() {
    app := iris.New()

    app.Get("/", func(ctx iris.Context) {
        ctx.WriteString("Hello, Iris!")
    })

    app.Listen(":8080")
}

まずはiris.New()を使って新しいirisアプリケーションインスタンスを生成しています。

次にapp.Getメソッドを使って、HTTPのGETリクエストに対するルート("/")のハンドラを設定しています。

ルートにアクセスされたときに実行されるハンドラ関数を提供しすることで、iris.Contextインターフェースを通してHTTPリクエストのコンテキストにアクセスし、レスポンスとして文字列「Hello, Iris!」を返します。

最後にapp.Listenメソッドを使って、アプリケーションをポート8080でリッスンし、外部からのリクエストを受け付けるように設定しています。

このコードを実行すると、ポート8080でウェブサーバーが起動し、ブラウザからhttp://localhost:8080にアクセスすると「Hello, Iris!」というテキストが表示されます。


テンプレートエンジンの統合

irisはHTMLテンプレート、Pug(Jade)、Handlebarsなど、複数のテンプレートエンジンをサポートしています。

app.RegisterView(iris.HTML("./views", ".html"))

app.Get("/hello", func(ctx iris.Context) {
    ctx.ViewData("Message", "Hello world!")
    ctx.View("hello.html")
})


静的ファイルのサービング

静的ファイル(画像、CSSファイル、JavaScriptファイルなど)をサーブすることができます。

app.HandleDir("/static", iris.Dir("./static"))


複数のルーティングとパラメータ

パスパラメータやクエリパラメータを取得し、複数のルートを定義できます。

app.Get("/users/{id:uint64}", func(ctx iris.Context) {
    userID := ctx.Params().GetUint64Default("id", 0)
    // ...
})


Webソケットのサポート

リアルタイム通信のためのWebソケットをサポートしています。

ws := app.WebsocketServer()
ws.OnConnection(func(c iris.WebsocketConnection) {
    c.OnMessage(func(message []byte) {
        c.To(iris.Broadcast).EmitMessage(message)
    })
})


RESTful APIの開発

JSONやXMLなどの形式でデータを返し、RESTfulなエンドポイントを簡単に作成できます。

app.Get("/api/users/{id:uint64}", func(ctx iris.Context) {
    userID := ctx.Params().GetUint64Default("id", 0)
    user := getUser(userID)
    ctx.JSON(user)
})


golangをもっと詳しくなりたい方に

初めてのGo言語

Go言語の入門から応用まではこの一冊で網羅されています。説明も順序立てて説明されており完成度の高い参考書となっています。


詳解Go言語Webアプリケーション開発

こちらはGo言語の基礎知識を得たあとに読むことをすすめる本となっています。ハンズオン形式で手を動かしながら実装をしていくことができるため、実際の開発を意識しながらGo言語を学ぶことができます。

以下の記事では他にも筆者が実際に読んでおすすめしたい本をまとめています。


【Go入門】Golang基礎入門 + 各種ライブラリ + 簡単なTodoWebアプリケーション開発(Go言語)

まだGo言語の勉強を始めていない方、全くの初心者の方にはこちらのUdemy教材が最もおすすめです。

この教材ではgolangの基礎について網羅的に学ぶことができます。ただ見て学ぶだけでなく、講座の中でアプリ作成まで行うことで学んだことの理解をさらに深めることができます。


現役シリコンバレーエンジニアが教えるGo入門 + 応用でビットコインのシストレFintechアプリの開発

個人的に最も勉強になったのは「現役シリコンバレーエンジニアが教えるGo入門 + 応用でビットコインのシストレFintechアプリの開発」という教材です。
本格的なレクチャーに入る前に、なぜGoなのか、なぜFintechなのかについて説明されていることで、Goの概念や意味について大枠から理解することができます。

以下の記事では筆者が実際に受講したおすすめUdemy教材をまとめています。

※本ページではアフィリエイトリンク(PR)が含まれています


この記事が参加している募集

この経験に学べ

この記事が気に入ったらサポートをしてみませんか?