試みAPIチュートリアル:始め


歓迎の男👋 久しぶりに素晴らしいコミュニティーのために書きました.多くのクールなことがこの時期(別の会社への私の転送を含む)の間に起こった.今のところ、日々の仕事はGOプログラミング言語に集中しています.私はまだ私はまだこの言語を使用して丸いプログラマではないが、私は最も好きなことについては非常に興味深いシリーズを構築するために最善を尽くします.
私は本当にこのシリーズに興奮しています、そして、私はそれがあなたのために同じであることを望みます😃

前書き


私が上で言ったように、私は地球上のゴランで最も熟練した人でないので、Uがどんな誤りか改善されることができるか、よりよく説明されることができるならば、私に知らせてください、そして、私はそれを修理するために必要な行動をします.
もう一つのことは、私はこのチュートリアルを通してインクリメンタルなアプローチをするように努力しています.したがって、すべての投稿は1つだけのことを行います🤖).
このチュートリアルでは、石に書かれていない場合は、何かを私に到達し、私はシリーズであなたの要求を紹介することができます自由に感じるようにしたいです.

大きな絵🌎


このチュートリアルの最終目標は、GOプログラミング言語でREST APIを構築することです.このAPIはTODO APIになるでしょう🙄). しかし、我々の旅の間、我々は多くのクールなものを導入するつもりです、そして、明らかに、すべてはIMOをカバーする常緑的な話題である単位テストによってバックアップされます.

ファーストステップ🔰


この投稿は、Golangプロジェクトといくつかの基本的なHTTPの設定方法の基礎をカバーします.例えば、簡単なGETメソッドでダミーのHTTPエンドポイントを公開します.これは次の部品の基礎になります🏰.

始めましょう🚀


多くの遅延をせずに一緒に楽しみを始めることができます!

必要条件


このチュートリアルに従うには、これらのプログラムとツールをマシンにインストールしなければなりません.
  • Visual Studioコード(または他のIDE)
  • インストールします.からダウンロードできますhere
  • StaticCheckツール.これは、簡素化、スタイリングルール、パフォーマンスの問題などについてのコードにいくつかのチェックを行うことができるリンギングのためのツールです.uはそれについてもっと見つけることができますhere . それは義務的ではないが、強く推薦する
  • GoFMTはコードをフォーマットする際にUを助けるパッケージです.私はあなたからマシンにグローバルにインストールすることをお勧めしますlink . 再び、義務的ではなく、提案!
  • Postman (または他のAPIクライアントでも快適です)
  • セットアップ🛠️


    いくつかの意味のある名前(todo apiなど)でこのチュートリアルの新しいフォルダを作成しましょう.IDEでこのフォルダを開き、統合端末の内部でこれらの2つのコマンドを発行します.mkdir src and cd src/ .
    次のステップは、Golangパッケージを初期化することです.これを行うには、このコマンドが必要ですgo mod init todoapi . これにより、インターネットからgoパッケージをインポートすることでモジュール依存関係を管理することができます🌏. すべてがうまくいくなら、あなたはgoと呼ばれている新しいファイルを見ます."src/"フォルダの下にmod.内容は以下のようになります.
    module todoapi
    
    go 1.18
    
    🔴 重要:1.18は、このゴランプログラムをコンパイルするために必要な最小バージョンを意味します.

    メイン


    メインファイルは私たちのプログラムのエントリポイントです、そして、主な機能はそれが我々のコードを実行するとき、実行中のOS
    🧐注: Golangはコンパイル可能なプログラミング言語です.
    これで「/src」フォルダの下に“main . go”を作成できます.この単純なコードを入力して、すべてが細かいことを確認します.
    package main
    
    import "fmt"
    
    func main() {
        fmt.Println("Hello, World!")
    }
    
    CLIでこのコマンドを発行することですべてが動作していることを確認しますgo run . または、F 5キーを押します.文字列を見るべきですHello, World! コンソールに印刷される👋.

    ルーティング🔀


    現在、Web APIはHTTPリクエストを受け取り、HTTPレスポンスを提供しています.HTTPリクエストが入ったとき、どのコントローラ(またはハンドラがこれらの2つの名前を交換可能に使うことができますが、前者と固執するのが好きです)を決定するためには、この種の要求を管理し、関連する応答を提供する必要があります.
    この仕組みをルーティングと呼ぶ.この1つはリクエストを管理する方法について計装しなければならないので、1対1の関係で相対的なコントローラにそれぞれの受け入れられたルートを写像する方法が必要です🚧.
    セットアップには次の手順を実行する必要があります.
  • 以下の"ルーター"フォルダを作成します
  • このフォルダの下に「ルータ」をつくってください

  • ルータを満たす.このコードをファイルに移動します
    package router
    
    import (
        "net/http"
    
        "github.com/gorilla/mux"
    )
    
    func SetupRoutes(router *mux.Router) {
        router.HandleFunc("/ping", func(w http.ResponseWriter, r *http.Request) {
            w.Write([]byte("pong"))
        }).Methods(http.MethodGet)
    }
    
    このコードはHTTPサーバに"/ping "に対する要求を管理するように指示します🏓 get HTTPメソッドを持つエンドポイントで、ダミーのプレーンテキスト"Pong "でのみ対応するインラインハンドラを提供します🏓 と200ステータスOK.
    ハンドラは、ResponseWriterとRequestのメソッドシグネチャの次の2つのパラメーターを持つ関数です.前者はクライアントに送信される実際の応答です🔙 というわけで、後者はHTTPリクエストの中に入っています🔜 そして、それはリクエストペイロード、ルート、私たちのエンドポイントコード内でアクセス可能なQueryString Paramsのような情報のすべてを保持します.
    ルーティングに使用できるパッケージがたくさんあります.私の好みはゴリラからのものです🦍. 詳細here .
  • CLI課題では以下のコマンドをこのライブラリをインストールしますgo get github.com/gorilla/mux

  • この依存関係がGoで追加されたかどうかを調べます.ファイル

    ゴーンツール


    静チェック


    今あなたのコードをリントする時間です👨‍🏫. CLIを開き、このコマンドを発行しますstaticcheck ./... .

    ゴフ山


    リンギングの後、書式設定のための時間です💠. CLI問題でgo fmt ./... そして、あなたはgolangフォーマット規則に従ってフォーマットされたファイルを見るでしょう.
    ⚠️ 警告:Uはあなたがメインどこに位置していることを確認する必要があります.Goファイルは、これらのコマンドを実行している場合、それ以外の場合は、ツールのいずれかの有効なgolang pkgとして認識していないかの事実のために多くの問題を抱えて終了します.

    一緒に配線する⛓️


    さて、メインに戻る.このコードを使って新しく作成されたものを使用してください.
  • package main
    
    import (
        "fmt"
        "net/http"
    
        "todoapi/router"
    
        "github.com/gorilla/mux"
    )
    
    func main() {
        fmt.Println("starting up HTTP server...")
    
        r := mux.NewRouter()
    
        router.SetupRoutes(r)
    
        err := http.ListenAndServe(":8000", r)
        if err != nil {
            panic(err)
        }
    }
    
    ここでは、新しいルータをゴリラパッケージによって提供されたメソッドでインスタンス化します.その後、我々のルータでセットアップメソッドでそれを計る.ファイルを移動します.
    最後の部分はポート8000の要求を受け入れるHTTPサーバを起動するのに責任があります、そして、それは我々のルータBTWであるRに従って彼らを管理します.
    ゴーアヘッドランgo mod tidy 依存関係が正常であることを確認してください.

    テスト🤓


    今度は(そして今回だけ)、いくつかの手動テストを行います.我々はユニットテストを使用するつもりだ次の投稿から心配しないでください😉.
    まず第一に私たちのGOパッケージを起動しますgo run . またはF 5を用いる.次に、オープンなPostmanと、このURLを指し示す簡単なGETリクエストを準備します.http://localhost:8000/ping リクエストを発行し、200 HTTP STATUSOKで「Pong」応答を取り戻すべきです👌.
    👀 注意:実行中のサーバーを中断するには、キーボードでCtrl + Cを押すことができます.

    成功🐎


    我々は首尾よくシリーズのウォームアップされ、この最初のチュートリアルを終えている.今、あなたはどのようにゴングでHTTPサーバーをスピンし、それを要求に対応するための楽器についての基本があります.

    次は何⏭️


    次の記事はコントローラについてです🛂. そこで、我々はHTTPリクエストとHTTPレスポンスと相互作用する最初のコントローラを定義します.そして、我々は対処するために巨大なトピックであるユニットテストを導入します⛰️.
    これは面白い場合は、何らかの理由でミスしないでくださいね😁.
    私はあなたがこのポストを楽しんで、それが役に立つと思っています.何か質問があれば、いくつかのエラーを私は本当にそれを感謝し、私はフォローアップするために最善を尽くしますスポットしたい.あなたはそれを楽しむ場合は、私はあなたの好きな社会に共有し、共有を検討することを検討したいと思います.Uがあなたの社会に私を加えることができるならば、これは私をとても非常に幸せにします!
    滞在は安全ですぐにお会いしましょう!😎