Go で最初の REST API を構築する
Go で最初の REST API を構築 – 始めましょう!
それで、Go に関する話題を聞いたことがあるでしょう?高速でシンプル、そして基本的に最近のバックエンド開発のロックスターです。 Go を初めて使用する場合、または Go を使って何か素晴らしいものを構築したいと考えている場合は、ここが正しい場所です。今週は、Go を使用して独自の REST API を構築する方法を詳しく説明します。楽しい取り組みになるので、しっかり準備をしてください!
なぜ行くのですか?
では、なぜこれほど多くの開発者が Go に気絶しているのでしょうか?想像してみてください。Google のエンジニアは、プログラムがコンパイルされるのを待ち続けることにうんざりし、髪の毛をかきむしりたくなるようなものを作成することにしました。 Go を入力してください。これは、単に仕事を完了するだけでなく、迅速かつ楽に実行できる言語です。
Go は、マルチコア システムを最大限に活用して、今日のハードウェア向けに構築されています。その秘密兵器? Goroutines - 汗をかくことなく大量のタスクを同時に処理できる魔法のような小さな同時ワーカーです。 Web アプリ、API、マイクロサービスのいずれを構築している場合でも、Go は、いつも夢見ているよく潤ったマシンのように、物事をスムーズに実行し続けます。
そして、これがキッカーです: Go は愚かなほど簡単に習得できます。 Python、Java、あるいは PHP のような「古典的な」ものから切り替える場合でも、「Hello, World!」と言う前に、Go でコーディングを始めることができます。そして高速で、本当に高速に動作します。もっと言う必要がありますか?
Go プロジェクトのセットアップ
さて、おしゃべりはこれくらいにして、実際にやってみましょう。まず、単純な Go プロジェクトをセットアップする必要があります。心配しないでください。私がサポートします:
Go がインストールされていることを確認してください。そうでない場合は、ここから入手してください。
次に、プロジェクト ディレクトリを作成し、プロジェクトを初期化しましょう:
mkdir go-rest-api cd go-rest-api go mod init github.com/yourusername/go-rest-api
- このディレクトリ内に main.go という名前の新しいファイルを作成し、コーディングの魔法の準備をします。
APIの作成
ここからがエキサイティングなところです!本のリストを管理するための非常にシンプルな API を構築します (本が好きではない人はいないでしょう)。私たちの API には次のエンドポイントがあります:
- GET /books – すべての本を取得します (やった、本!)
- POST /books – 新しい本を追加します
- GET /books/:id – ID によって特定の書籍を取得します (すべての書籍が同じように作成されるわけではないため)
準備はできましたか?コードを詳しく見てみましょう:
package main import ( "encoding/json" "fmt" "log" "net/http" "strconv" "github.com/gorilla/mux" ) type Book struct { ID int `json:"id"` Title string `json:"title"` Author string `json:"author"` } var books []Book // Get all books func getBooks(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/json") json.NewEncoder(w).Encode(books) } // Get a single book by ID func getBook(w http.ResponseWriter, r *http.Request) { params := mux.Vars(r) id, err := strconv.Atoi(params["id"]) if err != nil { http.Error(w, "Invalid book ID", http.StatusBadRequest) return } for _, book := range books { if book.ID == id { w.Header().Set("Content-Type", "application/json") json.NewEncoder(w).Encode(book) return } } http.Error(w, "Book not found", http.StatusNotFound) } // Add a new book func createBook(w http.ResponseWriter, r *http.Request) { var book Book _ = json.NewDecoder(r.Body).Decode(&book) book.ID = len(books) + 1 // Assign an ID (we’re just winging it here) books = append(books, book) w.Header().Set("Content-Type", "application/json") json.NewEncoder(w).Encode(book) } func main() { // Add some dummy data to start with books = append(books, Book{ID: 1, Title: "The Go Programming Language", Author: "Alan A. A. Donovan"}) books = append(books, Book{ID: 2, Title: "Learning Go", Author: "Jon Bodner"}) // Initialize the router r := mux.NewRouter() // Define the endpoints r.HandleFunc("/books", getBooks).Methods("GET") r.HandleFunc("/books/{id}", getBook).Methods("GET") r.HandleFunc("/books", createBook).Methods("POST") // Start the server fmt.Println("Server is running on port 8000...") log.Fatal(http.ListenAndServe(":8000", r)) }
ブレイク・イット・ダウン
- Mux Router: API でルーティングを処理するためにゴリラ/マルチプレクサを使用しています。これにより、ルートの定義が簡単になり、Go で Web サービスを構築する場合に頼りになります。次の方法でインストールできます。
go get -u github.com/gorilla/mux
ハンドラー: HTTP リクエストを処理するために getBooks、getBook、createBook 関数をセットアップしました。 Go の net/http パッケージを使用して、応答とデータのエンコード/デコードを処理します。簡単です!
JSON エンコーディング: ここでは Go の組み込み json パッケージが重労働を行っており、クライアントと API 間の通信を容易にするためにデータを JSON 形式に変換します。
APIの実行
ここからは楽しい部分です。これを実行してみましょう。ターミナルで次を実行するだけです:
go run main.go
ドーン! API は稼働中です。 Postman やcurl などのツールを使用してテストできるようになりました。
- すべての書籍を入手:
curl http://localhost:8000/books
- 特定の本を入手します:
curl http://localhost:8000/books/1
- 新しい本を追加:
curl -X POST http://localhost:8000/books -d '{"title":"New Book","author":"New Author"}' -H "Content-Type: application/json"
次は何ですか?
バックエンド開発において Go ができることに関して言えば、この小さな API は氷山の一角にすぎません。来週は、認証を追加し (はい、完全な JWT に移行します)、これらのエンドポイントを望ましくない訪問者から保護することでレベルアップします。
パート 2 をお楽しみに -- Go で JWT (JSON Web Token) を使用して REST API で認証用のミドルウェアをセットアップする
以上がGo で最初の REST API を構築するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Golangは、パフォーマンスとスケーラビリティの点でPythonよりも優れています。 1)Golangのコンピレーションタイプの特性と効率的な並行性モデルにより、高い並行性シナリオでうまく機能します。 2)Pythonは解釈された言語として、ゆっくりと実行されますが、Cythonなどのツールを介してパフォーマンスを最適化できます。

Golangは並行性がCよりも優れていますが、Cは生の速度ではGolangよりも優れています。 1)Golangは、GoroutineとChannelを通じて効率的な並行性を達成します。これは、多数の同時タスクの処理に適しています。 2)Cコンパイラの最適化と標準ライブラリを介して、極端な最適化を必要とするアプリケーションに適したハードウェアに近い高性能を提供します。

goisidealforforbeginnersandsutable forcloudnetworkservicesduetoitssimplicity、andconcurrencyfeatures.1)installgofromtheofficialwebsiteandverify with'goversion'.2)

Golangは迅速な発展と同時シナリオに適しており、Cは極端なパフォーマンスと低レベルの制御が必要なシナリオに適しています。 1)Golangは、ごみ収集と並行機関のメカニズムを通じてパフォーマンスを向上させ、高配列Webサービス開発に適しています。 2)Cは、手動のメモリ管理とコンパイラの最適化を通じて究極のパフォーマンスを実現し、埋め込みシステム開発に適しています。

GolangとPythonにはそれぞれ独自の利点があります。Golangは高性能と同時プログラミングに適していますが、PythonはデータサイエンスとWeb開発に適しています。 Golangは同時性モデルと効率的なパフォーマンスで知られていますが、Pythonは簡潔な構文とリッチライブラリエコシステムで知られています。

GolangとCのパフォーマンスの違いは、主にメモリ管理、コンピレーションの最適化、ランタイム効率に反映されています。 1)Golangのゴミ収集メカニズムは便利ですが、パフォーマンスに影響を与える可能性があります。

GolangとCにはそれぞれパフォーマンス競争において独自の利点があります。1)Golangは、高い並行性と迅速な発展に適しており、2)Cはより高いパフォーマンスと微細な制御を提供します。選択は、プロジェクトの要件とチームテクノロジースタックに基づいている必要があります。

GolangisidealforBuildingsCalables Systemsduetoitsefficiency andConcurrency、Whilepythonexcelsinquickscriptinganddataanalysisduetoitssimplicityand vastecosystem.golang'ssignencouragesclean、readisinediteNeditinesinedinediseNabletinedinedinedisedisedioncourase
