Quantcast
Channel: 初心者タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 21081

【Go言語】ginを使ってローカル環境を構築する

$
0
0

はじめに

概要

この記事ではginを用いて、ローカル環境を構築し、ブラウザにHello Worldという文字列を表示させまでの実装を行います。そのためには、ginとは何か、ginを用いて何が可能となるかを学ぶ必要があります。実際にコードを書きながら、それらを1つ1つ丁寧に説明していきます。

目的

  • ginを用いてローカル環境を構築する方法を理解すること

事前準備

ディレクトリとファイルの準備をしよう

まずは、今回作業するディレクトリとファイルを準備しましょう。まずはディレクトから作成します。

ディレクトリをmkdirコマンドで作成しましょう

以下のコマンドで指定の場所に新しいフォルダを作りましょう。

ターミナル
% mkdir hello_world

ここではhello_world名前のフォルダを作ります。

cdコマンドでディレクトリを移動しましょう

先ほど作成したディレクトリに移動しましょう。

ターミナル
% cd hello_world

touchコマンドでファイルを作成しましょう

以下のようにファイルを作成します。

ターミナル
% touch main.go

このmain.goがこれから作業していくファイルです。

ディレクトリ構造を確認しましょう

以下のようなディレクトリ構造になっていれば成功です。

hello_world
├── main.go

main.goを以下のように記述しましょう

main.go
packagemainfuncmain(){}

これで事前準備は完了です。

ginを用いてローカル環境を構築

ここからginを実施に使っていきます。まずはginとは何かを理解しましょう。

ginを使用する準備をしよう

gin

ginとは小規模のWebアプリケーションの開発を目的としたGoのフレームワークです。処理が軽量で、記述するコードがシンプルであることが特徴です

ginをインストールしましょう

以下のコマンドを実行して、ginをインストールしましょう。

ターミナル
% go get github.com/gin-gonic/gin

ginをimportしましょう

ginのインストールに成功したら、次はginをアプリケーション内で使えるようにimportしてあげる必要があります。以下のようにmain.goを記述しましょう。

main.go
packagemainimport("github.com/gin-gonic/gin")funcmain(){}

これでアプリケーション内でginを使用することができるようになりました。

ginを用いてリクエスト内容を決定しよう

ルータを作成しよう

以下のようにmain.goを記述しましょう。

main.go
packagemainimport("github.com/gin-gonic/gin")funcmain(){router:=gin.Default()}

gin.Default()

デフォルトで用意されているミドルウェアーでginのルータを作成することができます。ルータは異なるネットワーク間の接続や中継をします。

gin.Default()の中身
// Default returns an Engine instance with the Logger and Recovery middleware already attached. funcDefault()*Engine{engine:=New()engine.Use(Logger(),Recovery())returnengine}

ここで Use というメソッドを使用し Logger と Recovery というミドルウェアを設定しています。Loggerは標準出力にログ出力すミドルウェアであり、Recoveryは機能としてはパニックが起きた時にリカバーして500を返すミドルウェアです。

ブラウザに表示するファイルを指定しましょう

先ほどの記述でルータを作成することができました。次はこのルータを用いて、ブラウザで表示させるファイルを指定します。main.goを以下のように記述しましょう。

packagemainimport("github.com/gin-gonic/gin")funcmain(){router:=gin.Default()router.LoadHTMLGlob("templates/*.html")}

今回の記述により、templatesディレクトリのhtmlファイルを呼び出すという宣言ができました。

router.LoadHTMLGlob()

ブラウザに表示させるhtmlファイルのディレクトリを指定する。その指定により、htmlファイルとhttpメソッドを自由に指定することが可能となる(次の記述に出てくる)。

ブラウザに表示させるhtmlファイルを作成しましょう

まずはテンプレートファイルを作成します。以下のコマンドを実行しましょう。

% mkdir templates

次に、以下のコマンドでファイルを作成しましょう。

% touch templates/index.html

ディレクトリ構造を確認しましょう

以下のようなディレクトリ構造になっていれば成功です。

hello_world
├── main.go
├── templates
       ├── index.html

表示させるhtmlファイルを記述しましょう

以下のようにindex.htmlを記述しましょう。

index.html
<!DOCTYPE html><htmllang="ja"><head><metacharset="UTF-8"><title>Sample App</title></head><body><h1>Hello World!!!</h1></body></html>

GETメソッドでルーティングを指定しよう

packagemainimport("github.com/gin-gonic/gin")funcmain(){router:=gin.Default()router.LoadHTMLGlob("templates/*.html")router.GET("/",func(ctx*gin.Context){ctx.HTML(200,"index.html",gin.H{})})}

router.GET()

この記述によりルーティングを指定することができます。第一引数にURLパターン、第二引数にリクエストの内容を指定します。phpやnode.jsに精通している人からすれば馴染みのある記述ですね。

router.GET()の文法
route.Get('/○○/{パラメータ}',function(受け取る引数 ){....});

ルーティングを実行しましょう

以下のようにmain.goを記述しましょう。

packagemainimport("github.com/gin-gonic/gin")funcmain(){router:=gin.Default()router.LoadHTMLGlob("templates/*.html")router.GET("/",func(ctx*gin.Context){ctx.HTML(200,"index.html",gin.H{})})router.Run()}

ブラウザの表示を確認しましょう。

まずはmain.goファイルを実行する。

ターミナル
% go run main.go

そして、ブラウザでlocalhosot:8080を確認しましょう。

スクリーンショット 2020-04-11 16.49.07.png

上記のように表示されていれば成功です。

この記事の振り返り


Viewing all articles
Browse latest Browse all 21081

Trending Articles