Library for PHY API / さくらの専用サーバPHY の API をGo言語から扱うためのライブラリ
PHY API: https://manual.sakura.ad.jp/ds/phy/api/api-spec.html
oapi-codegen によって生成されたGoのコードに加え、 Fake/Stubサーバの実装やより簡易に使えるようにラップしたクライアントコードを提供します。
package main
import (
"context"
"fmt"
"log"
"os"
"github.com/sacloud/phy-api-go"
v1 "github.com/sacloud/phy-api-go/apis/v1"
)
func main() {
// APIキー
token := os.Getenv("SAKURACLOUD_ACCESS_TOKEN")
secret := os.Getenv("SAKURACLOUD_ACCESS_TOKEN_SECRET")
// httpクライアント
client := &phy.Client{
Token: token,
Secret: secret,
}
// サーバ一覧
serverOp := phy.NewServerOp(client)
found, err := serverOp.List(context.Background(), &v1.ListServersParams{})
if err != nil {
log.Fatal(err)
}
for _, server := range found.Servers {
fmt.Println(server.Service.Nickname)
}
}
Use go get.
go get github.com/sacloud/phy-api-go
Then import the phy
package into your own code.
import "github.com/sacloud/phy-api-go"
FakeサーバはGoのコード以外からでも利用できるようにスタンドアロン版を提供しています。
リリースページからダウンロード or go install
してください。
リリースページ: https://github.com/sacloud/phy-api-go/releases/latest
go install github.com/sacloud/phy-api-go/cmd/phy-api-go-fake-server
$ phy-api-go-fake-server --help
Start the web server
Usage:
phy-api-go-fake-server [flags]
Flags:
--addr string the address for the server to listen on (default ":8080")
--data string the file path to the fake data JSON file
-h, --help help for phy-api-go-fake-server
--output-example the flag to output a fake data JSON example
-v, --version version for phy-api-go-fake-server
--addr
: Fakeサーバがリッスンするアドレス--data
: FakeデータのJSONファイルへのパス、省略した場合はデフォルトのダミーデータが利用される--output-example
: FakeデータのJSONファイルの例を出力
起動したら次のようにリクエストを行えます。
# localhost:8080で起動した場合の例
$ curl http://localhost:8080/services/
--output-example
でJSONファイルの雛形を出力し、編集、その後--data
でファイルパスを指定します。
# 雛形を出力
$ phy-api-go-fake-server --output-example > fake.json
# 編集
$ vi fake.json
# データファイルのパスを指定して起動
$ phy-api-go-fake-server --data=fake.json
phy-api-go
Copyright 2021-2023 The phy-api-go authors.
This project is published under Apache 2.0 License.