# README
pa-api -- APIs for Amazon Product Advertising API v5 by Golang
This package is required Go 1.16 or later.
Migrated repository to github.com/goark/pa-api
Usage
Create PA-API Information
Default PA-API information.
sv := paapi5.New() //Create default server
fmt.Println("Marketplace:", sv.Marketplace())
fmt.Println("Region:", sv.Region())
fmt.Println("AcceptLanguage:", sv.AcceptLanguage())
fmt.Println("URL:", sv.URL(paapi5.GetItems.Path()))
// Output:
// Marketplace: www.amazon.com
// Region: us-east-1
// AcceptLanguage: en_US
// URL: https://webservices.amazon.com/paapi5/getitems
PA-API information for Japan region.
sv := paapi5.New(paapi5.WithMarketplace(paapi5.LocaleJapan)) //Create server in Japan region
fmt.Println("Marketplace:", sv.Marketplace())
fmt.Println("Region:", sv.Region())
fmt.Println("AcceptLanguage:", sv.AcceptLanguage())
fmt.Println("URL:", sv.URL(paapi5.GetItems.Path()))
// Output:
// Marketplace: www.amazon.co.jp
// Region: us-west-2
// AcceptLanguage: ja_JP
// URL: https://webservices.amazon.co.jp/paapi5/getitems
Create Client Instance
Create default client instance.
client := paapi5.DefaultClient("mytag-20", "AKIAIOSFODNN7EXAMPLE", "1234567890") //Create default client
fmt.Println("Marketplace:", client.Marketplace())
// Output:
// Marketplace: www.amazon.com
Create client instance for Japan region.
//Create client for Janan region
client := paapi5.New(
paapi5.WithMarketplace(paapi5.LocaleJapan),
).CreateClient(
"mytag-20",
"AKIAIOSFODNN7EXAMPLE",
"1234567890",
paapi5.WithHttpClient(http.DefaultClient),
)
fmt.Println("Marketplace:", client.Marketplace())
// Output:
// Marketplace: www.amazon.co.jp
Sample code
Operation GetItems
package main
import (
"context"
"fmt"
paapi5 "github.com/goark/pa-api"
"github.com/goark/pa-api/entity"
"github.com/goark/pa-api/query"
)
func main() {
//Create client
client := paapi5.New(
paapi5.WithMarketplace(paapi5.LocaleJapan),
).CreateClient(
"mytag-20",
"AKIAIOSFODNN7EXAMPLE",
"1234567890",
)
//Make query
q := query.NewGetItems(
client.Marketplace(),
client.PartnerTag(),
client.PartnerType(),
).ASINs([]string{"B07YCM5K55"}).EnableImages().EnableItemInfo().EnableParentASIN()
//Requet and response
body, err := client.RequestContext(context.Background(), 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())
}
Operation GetVariations
package main
import (
"context"
"fmt"
paapi5 "github.com/goark/pa-api"
"github.com/goark/pa-api/entity"
"github.com/goark/pa-api/query"
)
func main() {
//Create client
client := paapi5.New(
paapi5.WithMarketplace(paapi5.LocaleJapan),
).CreateClient(
"mytag-20",
"AKIAIOSFODNN7EXAMPLE",
"1234567890",
)
//Make query
q := query.NewGetVariations(
client.Marketplace(),
client.PartnerTag(),
client.PartnerType(),
).ASIN("B07YCM5K55").EnableImages().EnableItemInfo().EnableParentASIN()
//Request and response
body, err := client.RequestContext(context.Background(), 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())
}
Operation SearchItems
package main
import (
"context"
"fmt"
paapi5 "github.com/goark/pa-api"
"github.com/goark/pa-api/entity"
"github.com/goark/pa-api/query"
)
func main() {
//Create client
client := paapi5.New(
paapi5.WithMarketplace(paapi5.LocaleJapan),
).CreateClient(
"mytag-20",
"AKIAIOSFODNN7EXAMPLE",
"1234567890",
)
//Make query
q := query.NewSearchItems(
client.Marketplace(),
client.PartnerTag(),
client.PartnerType(),
).Search(query.Keywords, "数学ガール").EnableImages().EnableItemInfo().EnableParentASIN()
//Request and response
body, err := client.RequestContext(context.Background(), 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())
}
Operation GetBrowseNodes
package main
import (
"context"
"fmt"
paapi5 "github.com/goark/pa-api"
"github.com/goark/pa-api/entity"
"github.com/goark/pa-api/query"
)
func main() {
//Create client
client := paapi5.New(
paapi5.WithMarketplace(paapi5.LocaleJapan),
).CreateClient(
"mytag-20",
"AKIAIOSFODNN7EXAMPLE",
"1234567890",
)
//Make query
q := query.NewGetBrowseNodes(
client.Marketplace(),
client.PartnerTag(),
client.PartnerType(),
).BrowseNodeIds([]string{"3040", "3045"}).EnableBrowseNodes()
//Request and response
body, err := client.RequestContext(context.Background(), q)
if err != nil {
fmt.Printf("%+v\n", err)
return
}
//Decode JSON
res, err := entity.DecodeResponse(body)
if err != nil {
fmt.Printf("%+v\n", err)
return
}
fmt.Println(res.String())
}
Contributors
Many thanks for contributors
Links
# Functions
DefaultClient function returns an default Client instance with associate-tag, access-key, and secret-key parameters.
MarketplaceOf function returns Marketplace instance from service domain.
New function returns an Server instance with options.
NewTimeStamp returns TimeStamp instance.
WithContext is dummy function.
WithHttpClient function returns ClientOptFunc function value.This function is used in Server.CreateClient method that represents http.Client.
WithLanguage function returns ServerOptFunc function value.This function is used in New functions that represents Accept-Language parameter.
WithMarketplace function returns ServerOptFunc function value.This function is used in New functions that represents Marketplace data.
# Constants
No description provided by the author
Bad HTTP status.
No response data.
Null reference instance.
GetBrowseNodes.
GetItems.
GetVariations.
Australia.
Brazil.
Canada.
Egypt.
France.
Germany.
India.
Italy.
Japan.
Mexico.
Netherlands.
Poland.
SaudiArabia.
Singapore.
Spain.
Sweden.
Turkey.
United Arab Emirates.
United Kingdom.
United States.
Unknown local.
Unknown.
SearchItems.
# Interfaces
Client interface.
Marketplace is interface class of locale information.
Query interface for Client type.
# Type aliases
ClientOptFunc type is self-referential function type for Server.CreateClient method.
Error is error codes for paapi5 package.
MarketplaceEnum is enumeration of locale information.
Operation is enumeration of PA-API operation.
ServerOptFunc type is self-referential function type for New functions.