見出し画像

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

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

Revelとは

RevelはGo言語用のフルスタックWebアプリケーションフレームワークです。
Go言語の特性を活かしながら、Webアプリケーション開発のプロセスを効率化することを目的として設計されているため、高速で信頼性の高いWebアプリケーションの開発に適しています。

Revelの特徴やメリットについて以下の記事で詳しく解説しています。


Revelのインストール

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

go get github.com/revel/revel
go get github.com/revel/cmd/revel


新しいアプリケーションの作成

 revelコマンドラインツールを使用して新しいプロジェクトを作成します。

revel new my-app

これによりmy-appという名前の新しいRevelアプリケーションが作成されます。
Revelのアプリケーションは以下のようなディレクトリ構造となります。

app/:アプリケーションの主要なコード
controllers/:アプリケーションのコントローラ
views/:ビューテンプレート
models/:データモデルの定義が
conf/:設定ファイル
public/:静的ファイル(画像、CSS、JavaScriptなど)
tests/:テストコード


Webサーバーの作成

まずはcontrollersディレクトリに以下のようなapp.goというサンプルコントローラーを作成します。

package controllers

import "github.com/revel/revel"

type App struct {
    *revel.Controller
}

func (c App) Index() revel.Result {
    greeting := "Hello, Revel!"
    return c.Render(greeting)
}

次にviews/App/Index.htmlというビューファイルを作成し、次の内容を追加します。

<html>
  <head>
    <title>Hello, Revel!</title>
  </head>
  <body>
    <h1>{{.greeting}}</h1>
  </body>
</html>

conf/routesファイルを編集して、以下のルートを追加します。

module:testrunner

GET / App.Index


サーバーの起動

revelコマンドを使用してアプリケーションを起動します。

revel run my-app

ブラウザでhttp://localhost:9000にアクセスすると、アプリケーションのホームページが表示されます。


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

初めてのGo言語

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


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

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

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


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

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

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


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

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

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

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


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

#この経験に学べ

54,940件

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