[Golang]~MovieApp1: ルーティング処理を実証しよう!~

こんにちは、KOUKIです。

Golang/ReactでMovie Appの開発をしています。

今回は、Go言語で実装したWebサーバーのルーティング処理を実装します。

尚、Udemyの「Working with React and Go (Golang)」を参考にしているので、よかったら受講してみてください。

前回

Go言語の開発環境を構築しました

事前準備

フォルダ/ファイル

モジュール

ルーティング処理

前回、動作確認のために簡単なルーティング処理を実装しましたが、本格的なアプリケーション用に「julienschmidt/httprouter」パッケージを使って、ルーティング処理を実装しましょう。

設定構造体

アプリケーション全体で使用する設定の構造体を定義します。

ルートの設定

次に、ルートを設定します。

ハンドラーの設定

次に、ハンドラーを設定します。

main処理の修正

最後にmain処理を修正しましょう。

fiberginなどのWebフレームワークを使うのもありですが、httprouterで手組みするのもありですね。

動作確認

以下のパラメータで、リクエストを送ってください。

  • URL: http://localhost:4000/status
  • 形式: GET

Movieデータの取得

ルーティング処理で学んだことを活かして、Movieデータを取得する処理を実装しましょう。

Movie App構造体

Movie App構造体を定義します。

Movieデータ(個別)の取得

Movieデータを取得する処理を実装します。

まずは、ルーティングです。

「http://localhost:4000/v1/movie/<id>」を指定してリクエストすると、特定のMovieデータが取得できるようにしました。「:id」の部分はGoで取り出すことができます。

次にハンドラーの作成です。

URLからIDを取り出して、仮データ(Movie)を作成し、呼び出し元に戻しています。

writeJSONの実装は、以下です。

動作確認をしてみましょう。

以下のパラメータで、リクエストを送ってください。

  • URL: http://localhost:4000/v1/movie/1
  • 形式: GET

OKですね。

エラーハンドリング

先ほど実装したコードにエラーハンドリングを追加します。

まずは、エラーレスポンスを返却する用のメソッドを実装します。

これを、getOneMovieメソッドのエラーハンドリング内で呼び出します。

動作確認をしましょう。

以下のパラメータで、リクエストを送ってください。

  • URL: http://localhost:4000/v1/movie/nonumber
  • 形式: GET

Movieデータ(全件)の取得

全てのMovieデータを取得するハンドラーも作成しておきましょう。

以下のパラメータで、リクエストを送ってください。

  • URL: http://localhost:4000/v1/movies
  • 形式: GET

次回

次回は、PostgreSQL(DB)処理を実装します

記事まとめ

まとめ記事です

参考書籍

ソースコード

ここまで実装したソースコードを下記に記載します。

main.go

routes.go

movie-handlers.go

statusHandler.go

utilities.go

models.go

コメントを残す