Categorygithub.com/goark/pa-api
modulepackage
0.12.7
Repository: https://github.com/goark/pa-api.git
Documentation: pkg.go.dev

# README

pa-api -- APIs for Amazon Product Advertising API v5 by Golang

check vulns lint status GitHub license GitHub release

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

# Packages

No description provided by the author
No description provided by the author

# 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.

# Structs

Server type is a implementation of PA-API service.
TimeStamp is wrapper class of time.Time.

# 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.