1. ホーム
  2. スクリプト・コラム
  3. ゴラン

golang 開発 マイクロフレームワーク Gin インストール テストと導入

2022-01-07 04:34:18

概要

Ginは、エレガントなパッケージングとフレンドリーなAPIを備えたgolangのマイクロフレームワークです。高速で柔軟性があり、フォールトトレラントで使いやすくなっています。

Ginのダウンロードはこちら https://github.com/gin-gonic/gin
英語のドキュメント https://gin-gonic.com/docs/

インストール方法

go get -u github.com/gin-gonic/gin


テスト

リードパッケージ

import "github.com/gin-gonic/gin"   
import "net/http" //the project uses http.StatusOK


ステップ

ルーターを登録する

router := gin.Default()


ルートハンドリングの登録

router.GET("/", func(c *gin.Context) {
   c.String(http.StatusOK, "Hello World")
})


実行(デフォルトは8080番ポート)

if true{
  router.Run() // default port: 8080 http://localhost
}else{
  router.Run(":9999") //finger end port: 9999 http://localhost:9999
}


出力の形式を切り替えます

json形式を返す

func (c *Context) JSON(code int, obj interface{})


xml形式を返す

func (c *Context) XML(code int, obj interface{})


yaml形式を返す

func (c *Context) YAML(code int, obj interface{})


戻り値の文字列形式

func (c *Context) String(code int, format string, values . .interface{})


html テンプレートをレンダリングして返します。

func (c *Context) HTML(code int, name string, obj interface{})


ステータスコード

このステータスコードは、200、500、404 などの数字として手動で指定できるだけでなく、http パッケージのステータスコードも使用でき、意味的に理解しやすくなっています。

http-statusのドキュメントです。 http://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml
httpステータスコードの詳細です。 http://tool.oschina.net/commons?type=5

HTTPステータスコードの分類

<テーブル カテゴリー 説明 1** サーバーがリクエストを受け取り、操作を継続するために要求者を必要とするメッセージです。 2** 成功、操作を正常に受信し、処理された 3** リダイレクト、リクエストを完了するためにさらなるアクションが必要です。 4** クライアントエラー、リクエストに構文エラーが含まれているか、リクエストを完了できません。 5** サーバーエラー、サーバーがリクエストを処理している間にエラーが発生しました。

一般的なステータスコード

200 リクエスト成功
404 リクエストに失敗しました。サーバーはクライアントのリクエストに基づくリソース(ウェブページ)を見つけることができなかったのです。
500 Internal server error, リクエストを完了することができませんでした。

プロジェクトにインポートする

import "net/http"


package http

const (  
    StatusOK = 200 // RFC 7231, 6.3.1
    StatusMultipleChoices = 300 // RFC 7231, 6.4.1
    StatusNotFound = 404 // RFC 7231, 6.5.4
    StatusInternalServerError = 500 // RFC 7231, 6.6.1
)


使用例

package main
import(
  "github.com/gin-gonic/gin"
  "net/http"
  "fmt"
)
func main() {
  //1. register a router
  router := gin.Default()
  //2. Registering for route processing
  //default request http://localhost:8080/
  router.GET("/", func(c *gin.Context) {
     c.String(http.StatusOK, fmt.Sprintln(gin.H{"data":"default request"}))
  })
  //post request string format words http://localhost:8080/string
  router.GET("/string", func(c *gin.Context) {
     c.String(http.StatusOK, fmt.Sprintln("post request string formatting"))
  })
  //post request json formatted http://localhost:8080/json
  router.POST("/json",func (c *gin.Context) {
    c.JSON(http.StatusOK,gin.H{"name":"post request json formatted words","age":18})
  })
  //delete request xml formatted http://localhost:8080/xml
  router.DELETE("/xml",func (c *gin.Context) {
    c.XML(http.StatusOK,gin.H{"name":"delete request xml formatted","age":18})
  })
  //patch request yaml formatting http://localhost:8080/yaml
  router.PATCH("/yaml",func (c *gin.Context) {
    c.YAML(http.StatusOK,gin.H{"name":"patch request yaml formatting","age":18})
  })
  //get request html interface display http://localhost:8080/html
  router.GET("/html",func (c *gin.Context) {
    router.LoadHTMLGlob(". /view/tem/index/*") // This is the index of the foreground
    // router.LoadHTMLGlob("". /view/tem/admin/*") // This is the backend index
    // router.LoadHTMLFiles("". /view/tem/index.html") // Specify to load certain files
    c.HTML(http.StatusOK,"index.html",nil)
  })
  //3. Run (default is port 8080)
  router.Run()
}


フロントエンド

<ブロッククオート

パス: $GOPATH/src/view/tem/index/

<!DOCTYPE html>
<html lang="zh-cn" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
    <h1>front-end index</h1>
  </body>
</html>


以上、golangマイクロフレームワークGinのインストールテストと導入の詳細でしたが、Ginのインストールテストと導入についての詳細は、スクリプトハウスの他の関連記事に注意してください!.