コース一覧
    Go実践:並行処理とWeb API
    完成と次のステップ

    Go実践:並行処理とWeb API

    Goの並行処理とWeb API開発を組み合わせ、実践的なサービス構築へ進むコースです。

    1
    ゴルーチンと並行処理のさわり
    01. ゴルーチン15分
    02. チャネル20分
    03. 待ち合わせ20分
    04. 並行の落とし穴20分
    05. つくる: 並行集計20分
    06. 第7章クイズ10分
    2
    Web API(net/http)
    01. サーバーを立てる20分
    02. ハンドラ関数20分
    03. JSONを返す20分
    04. ルーティング20分
    05. 一覧API20分
    06. 詳細APIと40420分
    07. 出品API20分
    08. つくる: API主要部完成25分
    09. 第8章クイズ10分
    3
    総合制作
    01. 仕様互換を仕上げる25分
    02. Node版と差し替える25分
    03. 1バイナリでデプロイ25分
    04. 自由拡張25分
    05. 完成と次のステップ20分

    完成と次のステップ

    作ったもの

    66 レッスンで、fleama API の Go 版ができました。

    プレーンテキスト

    第1章  起動バナー
    第2章  型を選んで商品を表す
    第3章  条件付きの集計
    第4章  エラーを返す関数群
    第5章  検索と集計
    第6章  Item 構造体への再設計
    第7章  並行集計
    第8章  JSON を返す API
    第9章  仕様互換・差し替え・1バイナリでのデプロイ

    最初に書いたのは fmt.Sprintf の1行でした。いまは、仕様書のある API を別実装で置き換えられます。

    Go の8つの特徴を、もう一度

    設計の時点で「Goならでは」として選んだものが、全部出てきました。

    プレーンテキスト

    ゼロ値            第2章  未定義が無い
    暗黙変換なし      第2章  型を混ぜない
    for しかない      第3章  ループは1種類
    複数戻り値        第4章  値と成否を一緒に返す
    if err != nil     第4章  失敗を必ず受け取る
    defer             第4章  後始末を予約する
    ポインタレシーバ  第6章  書き換えを効かせる
    ゴルーチン        第7章  go の1語で並行に

    どれも「機能を足す」方向ではなく、書き方を1つに絞る方向の選択です。Go を読んでいて驚きが少ないのは、この積み重ねによります。

    次に進むなら

    データベースをつなぐ。 このコースの商品データは、コードの中に書いてありました。実際には DB から取ります。database/sql が標準ライブラリにあります。SQL入門とDB設計入門をやっているなら、そのまま繋がります。

    Docker で配る。 1バイナリは Docker と相性が抜群です。ビルドしたバイナリだけを詰めた、数MBのイメージが作れます。他の言語では数百MBになるところです。

    テストを書く。 go test が標準で入っています。このコースでは httptest を使いましたが、あれはテストの道具そのものです。書き方はもう知っています。

    実務のリプレイス案件へ。 第9章でやったことが、そのまま仕事になります。「動いている API を Go で書き直す」は、求人でよく見かける形です。

    最後の演習

    API のバージョン情報を返すエンドポイントを作ります。ここまでで覚えたことだけで書けます。

    完成したら、fleama-go は本当に完成です。

    要件

    1. VersionResponse に name・version・endpoints の3つのフィールドを定義する
    2. 構造体タグでキー名を小文字にする
    3. endpoints は4つのパスを指定の順で入れる
    4. json.Marshal で変換して w.Write で書く

    ヒント

    構造体に `Version string` と `Endpoints []string` を足し、それぞれタグを付けます

    スライスは `[]string{"/items", "/items/{id}", "/stats", "/version"}` の形で書きます

    キーの並び順は構造体で定義した順になります。Name・Version・Endpoints の順にしてください

    生田 陸人
    監修生田 陸人
    ゆめさくエンジニア / 現役ソフトウェアエンジニア監修者プロフィールを見る →
    編集 ゆめさく編集部·公開 2026/08/10

    関連レッスン

    • 自由拡張

      欲しいAPIを自分で設計して実装し、並行処理を活かした集計APIを1本作れるようになります。

    • 1バイナリでデプロイ

      go buildで作った1つのバイナリをサーバーに置き、常駐させる手順を説明できるようになります。

    • Node版と差し替える

      同じ仕様の別実装に置き換えられることを確かめ、実務のリプレイスを疑似体験します。

    • 仕様互換を仕上げる

      ステータスコードとエラー形式を仕様に揃え、互換のあるAPIとして仕上げられるようになります。

    このレッスンに出てくる用語

    意味があいまいなまま進んだ語は、ここから読み直せます。

    • エンドポイント「この URL を叩くとこの機能が動く」入口の住所
    • APIアプリ間でデータをやり取りする窓口
    • 設計何をどう作るかを決める前工程
    • データベースデータを構造化して保存する仕組み
    • 標準ライブラリPythonに同梱の公式モジュール群
    • SQLデータベースを操作するための共通言語
    • Dockerアプリをコンテナで動かす仮想化ツール
    • イメージコンテナのテンプレートとなる静的データ
    main.go
    エディタを読み込んでいます

    メモ

    完成と次のステップ

    ⌘S で保存