Gin フレームワークで RESTful API を作成する

公開: 2022-09-02

Gin フレームワークを利用して REST API を作成することを楽しみにしていますか? 次に、このブログをよく読んでください。 簡単な手順で基本的な API を作成する方法を学び、その後で他の複雑なプロジェクトに着手できます。 はい、Golang 開発サービスを利用せずに、自分で作業を進めることができます ただし、始める前に、Gin フレームワークの理論的側面を理解しておいてください。

  1. 達成する最初のタスク
  • 最初に go-workspace にディレクトリを作成する必要があります。 Windows コンピューターを使用している場合は、コマンド プロンプトを使用します。 オペレーティング システムとして macOS または Linux を使用している場合は、ターミナルを使用します。
  • このシナリオでは、コマンド プロンプトを使用します。

cd go-ワークスペース

mkdir ジョブ

CDジョブ

コード。

code . と入力すると、VS Code が起動します。 あなたの場合、それは別の IDE またはエディターである可能性があります。

  1. VS コードを使ってみる
  • 最初に行うことは、main.go ファイルを作成することです。 これに続いて、REST API を作成するために gin フレームワークをダウンロードする必要があります。
  • go.mod ファイルを作成する必要があります。 次のように入力します。

go mod init golang.com/job

  • go.mod ファイルの作成に続いて、次のように入力します。

github.com/gin-gonic/gin を入手してください

これにより、go.sum ファイルが作成され、gin フレームワークに関連するすべての必要なパッケージがダウンロードされます。

  1. シンプルな API を使ってみましょう
  • コードを書き留めるだけです

パッケージメイン

輸入 (

「fmt」

「ネット/http」

「github.com/gin-gonic/gin」

)

関数メイン()

{s :=gin.Default()

s.GET (“”, func (c *gin.Context){

c.String(http.StatusOK, 「役職は何ですか?」)

}))

s.実行 (「localhost: 8000」)

}

  • ご覧のとおり、アプリケーションが必要とするすべてのパッケージをインポートしました。 次に、関数 main に直接進みます。 私たちが行っているのは、Gin のリカバリまたはロガー ミドルウェアのデフォルト モジュールを構築することです。
  • デフォルト設定は、変数「s」に含まれています。 この変数を使用して、GET API の開発を支援します。 この例で指定した最初の引数は、API の URL です。
  • w.Run(“localhost:8000”) で指定されたベース URL は、localhost:8000 で API をホストするために使用されます。 さらに、最初の引数は実際には API の相対ルートを示します。
  • ハンドラー関数 func (c *gin.Context) は、指定できる関数シーケンスを参照します。
  • 変数 *gin.Context へのポインターは、関数の引数として機能します。 したがって、この場合の「c」はコンテキストを表します。
  • コンテキストは、c.String または c.JSON のいずれかの値を返す必要があります。 ここでは、操作の基準が 2 つあります。 状態は、最初の引数である単純な整数 (http.StatusOK) によって示されます。 net/http パッケージをインポートしたので、これを使用できます。
  • この後、サンプル文字列を送信しているだけです。 それは「仕事の役割は何ですか?」です。
  1. 上記のプログラムを実行してみましょう

プログラムを実行するには、go run main.go と入力する必要があります。

  • ご覧のとおり、空白の URL に GET リクエストが存在します。 カスタマイズ機能も搭載。 さらに、エンジンのリリースモード操作が表示されます。 ローカルホスト 8000 にアクティブなエンドポイントが 1 つあります。
  • Web ブラウザーで localhost:8000 と入力すると、以下が表示されます。
  • それまでの間、VS Code で次のスナップショットを確認できます。

これは何を意味するのでしょうか? ここでは、実行されるコードの応答時間を監視する上で、gin フレームワークが大きな役割を果たしています。

  1. パラメータの受け渡しをURLで行うGET APIを中心に

次のコードは、API が URL に応答して値 (理想的には文字列) を提供することを前提としています。

s.GET(“/:get”, func (c *gin.Context){

var val = c.Param(“getr”)

c.JSON(http.StatusOK, gin.H{

「応答データ」:val,

}))

}))

// 2 番目のセクション

  • 各変数名をコロンで区切って GET リクエストに指定できます。 したがって、基本 URL の後に入力されたものはすべて「get」と見なされます。
  • 「get」の値を決定するには、Param のコンテキストと前述の変数の名前を定義する必要があります。 Val は Gin から「get」を受け取り、結果を通知されます。
  • 次に、値を含む JSON を転送していることがわかります。

複雑な作業をしていますか? 次に、問題に遭遇して修正できない場合に備えて、 Golang 開発サービスを利用することをお勧めします。

  1. 上記のプログラムを実行してみましょう
  • 繰り返しますが、go run main.go と入力してプログラムを実行する必要があります。

「tcp 127.0.0.1: 8000: バインド: 通常、各ソケット アドレス (プロトコル/ネットワーク アドレス/ポート) の使用は 1 つだけ許可されています。」というメッセージが表示された場合は、コマンド プロンプトで操作を実行する必要があります。

nestat -ano | 検索文字列:8000

LISTENING の値 (たとえば 7932) を確認してから、次のように入力する必要があります。

taskkill / pid 7932 /F

これにより、pid プロセスが終了します。

  • ブラウザでは、次のことを実行します。

localhost:8000 を指定した後に文字列を入力しなければならなかった理由は、API が URL からの文字列を想定しているためです。

  1. POST API を試す
  • ここで POST API への接続を試みます。 さらに、データが体内に存在することを認識しています。 そんな時、構造体が役に立ちます。
  • このセクションを覚えていますか?

パッケージメイン

輸入 (

「fmt」

「ネット/http」

「github.com/gin-gonic/gin」

)

  • これに続いて、ご覧のとおり、2 つのデータ フィールドを持つ構造体を作成します。

タイプジョブ構造体{

Salary int `json:"salary" binding: "required"`

名前文字列 `json:"name" バインディング: "required"`

}

  • json:"salary" と json:"name" は異なるキーを表します。 バインディングが「必須」と指定されていることもわかります。
  • //2 番目のセクションに続いて、次のように入力します。

s.POST(“/highlight”, func (c *gin.Context){

var データ ジョブ

エラーの場合:= c.ShouldBind(&data); エラー != ゼロ{

fmt.Println (エラー)

c.JSON(http.StatusBadRequest, gin.H{

「エラー」: fmt.Sprintf(「%v」、エラー)、

}))

} そうしないと{

c.JSON(http.StatusOK, gin.H{

「データ」:データ、

}))

}

}))

  • このコードブロックを見てみましょう。 s.POST で、ジョブのオブジェクトを作成します。 その後、コンテキスト「c」がデータモデルにアタッチされます。 c.ShouldBind(&data) がエラーをスローした場合、API に問題を警告します。
  • c.JSON(http.StatusBadRequest) の “error”:fmt.Sprintf(“%v”, err) で観察されたエラーを示す不適切なリクエストを作成しました。
  • 問題がなければ、「data」キーを使用してデータを API 応答に送り返します。
  1. コードの最後のブロックを実行しましょう
  • では、プログラムの最終段階を調べてみましょう。 これを行うには、 go run main.go と入力する必要があります。 さらに、Postman を使用して、API のしくみとコードのしくみを示します。 デスクトップ版はインストールするだけです。
  • 下のスクリーンショットを見ると、本文に 2 つのデータ フィールドがあることがわかります。 Raw と JSON を Body として選択する必要があります。
  • [送信] をクリックすると、次の結果が表示されます。

{

"データ": {

「給料」:23000、

「名前」:「ロバート・ホール」

}

}

プログラムは理解できましたか? はい? それから、素晴らしい。 最後のケースでは、3 つの API が実行されていることがわかります。1 つは URL に何も言及されていないもの、1 つは文字列を期待するもの、そして最後のものは本文に値を期待するものです。 うまくいけば、いくつかの困難な REST API タスクに今すぐ取り組むことができます。