4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Go言語とginをWindows上で動かしてみる

Last updated at Posted at 2020-01-24

#はじめに

始めてqiitaで記事を書くので緊張しています...
良い記事を書くには』を参考にしていますが、至らぬ点などございましたら申し訳ありません。

環境

  • OS: windows 10 Home
  • Go: 1.13.6
  • Git: 2.25.0
  • Text Editor: Atom

インストール

Go言語、Gitのインストールは、Windows用インストーラから行います。
ginのインストールはコマンドプロンプトより行います。

  1. Go言語をダウンロード&インストール -> https://golang.org/dl/

  2. Gitをダウンロード&インストール -> https://git-scm.com/download/win
     ginをgithubよりダウンロードするのですが、その際にGitが必要になります(当たり前か...)
     僕はこれに気が付かず、時間を浪費しました。

  3. ginをダウンロード&インストール -> https://gin-gonic.com/ja/docs/quickstart/
     上記ページを参考にginのダウンロード&インストールを行います。
     
     go get -u github.com/gin-gonic/gin

動作確認

クイックスタート | Gin Web Framework』を参考にさせていただきました。
以下のプログラムを、コマンドプロンプトよりgo run test.goで実行します。

test.go
package main

import "github.com/gin-gonic/gin"

func main() {
    r := gin.Default()
    r.GET("/ping", func(c *gin.Context) {
        c.JSON(200, gin.H{
            "message": "pong",
        })
    })
    r.Run() // 0.0.0.0:8080 でサーバーを立てます。
}

参考ページには『ブラウザで 0.0.0.0:8080/ping にアクセスする』と書いてありますが、なぜかつながりませんでした。
かわりに、localhost:8080/pingから接続したところ無事アクセスすることができました。

Hello, world from Gin ! をしてみる

Go / Gin で超簡単なWebアプリを作る』を参考に、先ほどのtest.goを少し書き換えます。

test2.go
package main

import "github.com/gin-gonic/gin"

func main() {
    r := gin.Default()
    r.LoadHTMLGlob("*.html")
    r.GET("/", func(c *gin.Context) {
        c.HTML(200, "index.html", gin.H{})
    })
    r.Run() // 0.0.0.0:8080 でサーバーを立てます。
}

index.htmlを用意します。

index.html
<!DOCTYPE html>
<html lang="ja">
    <head>
        <meta charset="UTF-8">
        <title>test index</title>
    </head>
    <body>
        <h1>Hello, world from Gin !</h1>
    </body>
</html>

コマンドプロンプトよりgo run test2.goで実行し、ブラウザよりlocalhost:8080へ接続します。
以下が表示されて、無事動作していることがわかりました。
image.png

さいごに

Goとginを使ったWebアプリの開発がWindows上で行えることがわかり一安心です。

また、最近はWebアプリもどきをHeroku上で動かしたりしています。
データのやり取りなんかはJavaScript+GASなんかで行っていたのですが、限界が見えてしまったためサーバ側でも処理をさせようと思ったのが、今回 Goとginを触ったきっかけです。

今回書いたプログラムをベースに使えるアプリを作っていきたいと思う所存です。

4
3
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
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?