【Go Lang】WebFrameWork使ってみた3 iris
はじめに
Go lang WebFrameWorkを使ってみるの三つ目。
人気ライブラリの1~3位を使ってみることにする。
【Go Lang】WebFrameWork使ってみた1 Gin
【Go Lang】WebFrameWork使ってみた2 beego
【Go Lang】WebFrameWork使ってみた3 iris
- Gin
- beego
- iris←今回はコレ
公式サイトとか
公式サイト(日本語ないです):https://www.iris-go.com/
github:https://github.com/kataras/iris
ライセンス:BSD 3-Clause
BSD 3-Clause
これは聞いたことないぞ?ググってみる。
1.ソースコードの再配布は、上記の著作権表示、ここに列挙された条件、および下記の免責条項を保持すること。
2.バイナリ形式の再配布は、上記の著作権表示、ここに列挙された条件、および下記の免責条項は、ドキュメントまたは他の資料で配布すること。
3.このソフトウェアのコントリビューター(貢献者)の名前は、特定の書面による事前の許可なしに、このソフトウェアから派生した製品の保証または販売促進のために使用してはいけない。つまり、BSD-4-Clauseを使う場合は、
「この製品は、○○という組織によって開発されたソフトウェアが含まれています。」
という謝辞を入れなければなりません。BSD-3-Clauseを使う場合は、
商用利用の際に「この製品が使っている○○というライブラリは○○さんが作ったものだよ、すごいでしょ」的な宣伝文句を書いてはいけないということです。
BSD-3-Clauseなので宣伝文句をいれなければ問題なさそう。
人気
- star数:20,001
- qiitaの記事数:31(https://qiita.com/tags/iris)
- google検索結果:約 13,100,000 件(検索ワード"go lang iris")
qiitaのirisタグは別の言語のirisが混じっている。pythonにもあるみたい。
google検索結果はirisというワードが普遍的すぎる結果のような気がする。
学習しやすさ
日本語ドキュメントはやはりない。
beegoのようなquick startもない模様。
公式サイトのドキュメントは豊富。
特徴
- MVCモデル
- 最速のWebフレームワーク
- クロスプラットフォーム
実装
GOMODULEでirisをインストールする。
$ mkdir iris-project && cd iris-project
$ go mod init iris-project
$ go get github.com/kataras/iris/v12@master
公式サイトのquick startからmain.goを作成。
Gin、beegoと同じくvueとアップロード処理を作成。
MVCとうたってたけどmain.goだけで完結してしまうな。
vueはbeegoで作成したやつをコピーしてきてインストール&ビルド。
package main
import (
"io"
"log"
"net/http"
"os"
"github.com/kataras/iris/v12"
)
func main() {
app := iris.Default()
app.HandleDir("/static", iris.Dir("./static"))
app.RegisterView(iris.HTML("./templates", ".tpl"))
app.Get("/", func(ctx iris.Context) {
ctx.ViewData("message", "Hello world!")
ctx.View("index.tpl")
})
app.Post("/upload", func(ctx iris.Context) {
file, header, err := ctx.FormFile("image")
if err != nil {
ctx.StopWithError(iris.StatusBadRequest, err)
return
}
fileName := header.Filename
dir, _ := os.Getwd()
out, err := os.Create(dir + "\\images\\" + fileName)
if err != nil {
log.Fatal(err)
}
defer out.Close()
_, err = io.Copy(out, file)
if err != nil {
log.Fatal(err)
}
ctx.StatusCode(http.StatusOK)
ctx.JSON(iris.Map{
"status": "ok",
})
})
app.Listen(":8080")
}
<!DOCTYPE html>
<html lang="ja" dir="ltr">
<head>
<meta charset="utf-8">
<title>webpack_sample</title>
</head>
<body>
<div id="message">{{.message}}</div>
<div id="app"></div>
<script src="./static/js/app.js"></script>
</body>
</html>
後はgo run で。
まとめ
公式サイトに従うとMVCっぽくなくできてしまった。
ドキュメントも量はあるけどあまり親切でないような・・・
ググっても情報が少ないしちょっとやりにくい。
3つのFWを試してみたけど、古い技術に慣れている人からするとbeegoが一番理解しやすいと思う。
createコマンドでとりあえずの形はできるしMVCのフォルダ分けが安心する。
次回からはbeegoについてもう少し踏み込んで試してみる予定。
Author And Source
この問題について(【Go Lang】WebFrameWork使ってみた3 iris), 我々は、より多くの情報をここで見つけました https://qiita.com/y_nomura_CR/items/d24f243d7b34522626d5著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .