PA-API v5 クライアント・パッケージ v0.4.0 をリリースした

no extension

いや, Go 言語用の PA-API v5 クライアント・パッケージなんか私以外に需要はないと思ってたのよ。 したら pull request 貰っちゃって大慌て(笑)

貰った PR を受け入れた後,コメント・ドキュメントの整理と若干の機能追加をした v0.4.0 をリリースした。

まずは,アイテム検索用の query 構造体を作ってもらっちゃった。 これを使って,こんな感じにアイテムの検索ができる。

package main

import (
    "context"
    "fmt"
    "net/http"

    paapi5 "github.com/spiegel-im-spiegel/pa-api"
    "github.com/spiegel-im-spiegel/pa-api/entity"
    "github.com/spiegel-im-spiegel/pa-api/query"
)

func main() {
    //Create client
    client := paapi5.New(
        paapi5.WithMarketplace(paapi5.LocaleJapan),
    ).CreateClient(
        "mytag-20",             //Amazon associate tag
        "AKIAIOSFODNN7EXAMPLE", //access key for PA-API
        "1234567890",           //secret key for PA-API
        paapi5.WithContext(context.Background()),
        paapi5.WithHttpClient(http.DefaultClient),
    )

    //Make query
    q := query.NewSearchItems(
        client.Marketplace(),
        client.PartnerTag(),
        client.PartnerType(),
    ).Search("数学ガール", query.Keywords)

    //Requet and response
    body, err := client.Request(q)
    if err != nil {
        fmt.Printf("%+v\n", err)
        return
    }
    //io.Copy(os.Stdout, bytes.NewReader(body))

    //Decode JSON
    res, err := entity.DecodeResponse(body)
    if err != nil {
        fmt.Printf("%+v\n", err)
        return
    }
    fmt.Println(res.String())
}

あっ,もちろんアクセス・キー等は自分のを使ってね。

サーバ側の情報を格納する paapi5.Server インスタンスを生成しているのが以下の部分だが

paapi5.New(
    paapi5.WithMarketplace(paapi5.LocaleJapan),
)

引数の関数オプションの仕様を変更した。 以下のシンボルをマーケットプレイスとしてセットできる。

//Marketplace is enumeration of locale information
type Marketplace int

const (
    LocaleUnknown            Marketplace = iota //Unknown local
    LocaleAustralia                             //Australia
    LocaleBrazil                                //Brazil
    LocaleCanada                                //Canada
    LocaleFrance                                //France
    LocaleGermany                               //Germany
    LocaleIndia                                 //India
    LocaleItaly                                 //Italy
    LocaleJapan                                 //Japan
    LocaleMexico                                //Mexico
    LocaleSpain                                 //Spain
    LocaleTurkey                                //Turkey
    LocaleUnitedArabEmirates                    //United Arab Emirates
    LocaleUnitedKingdom                         //United Kingdom
    LocaleUnitedStates                          //United States
)

これらのシンボルからマーケットプレイス名,サービスサーバ名,リージョン,言語の情報を取得できる。 既定値は paapi5.LocaleUnitedStates とした。

他の人が使うとか勘定に入れてなかったので相当にやっつけコードだったが,余暇にちょっとずつコードもコメント・ドキュメントも整理していく予定である。 なので長い目で見てやってください。 あっ pull request はいつでも歓迎です。

ブックマーク

参考図書

photo
プログラミング言語Go (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES)
Alan A.A. Donovan (著), Brian W. Kernighan (著), 柴田 芳樹 (翻訳)
丸善出版 2016-06-20
単行本(ソフトカバー)
4621300253 (ASIN), 9784621300251 (EAN), 4621300253 (ISBN), 9784621300251 (ISBN)
評価     

著者のひとりは(あの「バイブル」とも呼ばれる)通称 “K&R” の K のほうである。この本は Go 言語の教科書と言ってもいいだろう。

reviewed by Spiegel on 2018-10-20 (powered by PA-APIv5)