1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Goで作る超簡単API(最低水準)

Posted at

環境構築

ここから自分の環境にあったGoをインストールする.

②APIを作るGoのフレームワークGinを導入する

go mod init myapp         # プロジェクト初期化(1回だけ)
go get github.com/gin-gonic/gin

ソースコード

main.goファイルを作成し,下記を張り付ける.

main.go
package main

import (
	"github.com/gin-gonic/gin"
)

func main() {
	r := gin.Default() // Ginのルーター初期化

	// ルーティング定義:GET /ping → JSONを返す
	r.GET("/ping", func(c *gin.Context) {
		c.JSON(200, gin.H{
			"message": "pong",
		})
	})

	// サーバー起動(localhost:8080)
	r.Run(":8080")
}

GETメソッドを使用し,ローカルホスト番号/pingが指定された時に,JSON形式のメッセージを返します.
その時に,ステータスコードを200(リクエストが正常に処理できた)で返します.

ステータスコードの詳細はこちら

実行

bash
go run main.go

すると,下記のようなログが表示される.

[GIN-debug] Listening and serving HTTP on :8080

GETメソッドの実行

PowerShellを開き,下記コマンドを実行

bash
curl http://localhost:8080/ping

補足
GETメソッドは多用するため,-X GETを記述しなくても使用できる.
下記は同じ処理結果を得ることができる.

bash
curl http://localhost:8080/ping
curl -X GET http://localhost:8080/ping

結果

image.png

ステータスコード200で{"message":"pong"}を取得できた.

他のメソッド

Ginでの書き方	curlの例

GET 取得 r.GET() curl http://localhost:8080/XXX
POST 作成 r.POST() curl -X POST -d ...
PUT 全更新 r.PUT() curl -X PUT -d ...
PATCH 一部更新 r.PATCH() curl -X PATCH -d ...
DELETE 削除 r.DELETE() curl -X DELETE ...

メソッド 操作  Ginでの書き方 curlの例
GET 取得 r.GET() curl http://localhost:8080/XXX
POST 作成 r.POST() curl -X POST -d ...
PUT 全更新 r.PUT() curl -X PUT -d ...
PATCH 一部更新 r.PATCH() curl -X PATCH -d ...
DELETE 削除 r.DELETE() curl -X DELETE ...

GoとGinで作れるもの

Go(Golang)でAPIやWebサービス開発を学び続けると、どんどん作れるものの幅が広がります。以下はレベル別に作れるものの例をまとめたものです。


🌱 初級:今の延長でできるもの

作れるもの 説明
REST APIサーバー JSONを返すシンプルなWebサービス
TODOアプリのバックエンド データ追加・更新・削除ができるAPI
ログイン画面の認証API ID/パスワードによる簡易ログイン機能
JSONで動くチャットAPI メッセージの送受信をAPI経由で実装

🌿 中級:DBや外部連携を使うと

作れるもの 技術が必要なこと
ユーザー管理システム MySQL/PostgreSQLとの連携、バリデーション
予約システムAPI 時間管理、トークン認証(JWTなど)
天気やニュースの取得API 外部API(OpenWeatherなど)と連携
スマホアプリ用のバックエンドAPI CORS設定やJSON構造の工夫

🌳 上級:本格的なサービスやマイクロサービス構成

作れるもの 特徴
オンラインショップのAPI(カート・決済) セッション管理・商品検索・在庫処理
IoTデバイスと通信するAPI MQTTやWebSocketとの組み合わせ
マイクロサービス構成のWebシステム 複数API間通信、APIゲートウェイ(例:Kong)
本番デプロイ可能なクラウド連携API Docker、Kubernetes、CI/CD、自動スケール

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?