正確な消費税計算が必要なアプリケーションを構築している場合、zip.tax API は統合に最適なツールです。このガイドでは、Golang アプリケーションで zip.tax API を設定して使用する方法を説明します。
始める前に、以下のものがあることを確認してください:
HTTP リクエストを行うには、Golang の標準 net/http パッケージを使用します。さらに、JSON 応答の解析には、encoding/json を使用します。
新しいプロジェクト ディレクトリを作成し、新しいモジュールを初期化します:
mkdir ziptax-golang && cd ziptax-golang go mod init ziptax-golang
これは、消費税情報を zip.tax API にクエリする単純な Golang アプリケーションの完全な例です。
package main import ( "encoding/json" "fmt" "log" "net/http" "net/url" ) type Response struct { Version string `json:"version"` RCode int `json:"rCode"` Results []Result `json:"results"` AddressDetail AddressDetail `json:"addressDetail"` } type Result struct { GeoPostalCode string `json:"geoPostalCode"` GeoCity string `json:"geoCity"` GeoCounty string `json:"geoCounty"` GeoState string `json:"geoState"` TaxSales float64 `json:"taxSales"` TaxUse float64 `json:"taxUse"` TxbService string `json:"txbService"` TxbFreight string `json:"txbFreight"` StateSalesTax float64 `json:"stateSalesTax"` StateUseTax float64 `json:"stateUseTax"` CitySalesTax float64 `json:"citySalesTax"` CityUseTax float64 `json:"cityUseTax"` CityTaxCode string `json:"cityTaxCode"` CountySalesTax float64 `json:"countySalesTax"` CountyUseTax float64 `json:"countyUseTax"` CountyTaxCode string `json:"countyTaxCode"` DistrictSalesTax float64 `json:"districtSalesTax"` DistrictUseTax float64 `json:"districtUseTax"` District1Code string `json:"district1Code"` District1SalesTax float64 `json:"district1SalesTax"` District1UseTax float64 `json:"district1UseTax"` District2Code string `json:"district2Code"` District2SalesTax float64 `json:"district2SalesTax"` District2UseTax float64 `json:"district2UseTax"` District3Code string `json:"district3Code"` District3SalesTax float64 `json:"district3SalesTax"` District3UseTax float64 `json:"district3UseTax"` District4Code string `json:"district4Code"` District4SalesTax float64 `json:"district4SalesTax"` District4UseTax float64 `json:"district4UseTax"` District5Code string `json:"district5Code"` District5SalesTax float64 `json:"district5SalesTax"` District5UseTax float64 `json:"district5UseTax"` OriginDestination string `json:"originDestination"` } type AddressDetail struct { NormalizedAddress string `json:"normalizedAddress"` Incorporated string `json:"incorporated"` GeoLat float64 `json:"geoLat"` GeoLng float64 `json:"geoLng"` } func getSalesTax(address string, apiKey string) (*Response, error) { url := fmt.Sprintf("https://api.zip-tax.com/request/v50?key=%s&address=%s", apiKey, url.QueryEscape(address)) resp, err := http.Get(url) if err != nil { return nil, fmt.Errorf("failed to make API request: %w", err) } defer resp.Body.Close() if resp.StatusCode != http.StatusOK { return nil, fmt.Errorf("unexpected status code: %d", resp.StatusCode) } var taxResponse Response if err := json.NewDecoder(resp.Body).Decode(&taxResponse); err != nil { return nil, fmt.Errorf("failed to parse response: %w", err) } return &taxResponse, nil } func main() { apiKey := "your_api_key_here". // Replace with your key address := "200 Spectrum Center Dr, Irvine, CA 92618" // Example address taxInfo, err := getSalesTax(address, apiKey) if err != nil { log.Fatalf("Error fetching sales tax: %v", err) } fmt.Printf("Normalized Address: %s\n", taxInfo.AddressDetail.NormalizedAddress) fmt.Printf("Address Lat/Lng: %f, %f\n", taxInfo.AddressDetail.GeoLat, taxInfo.AddressDetail.GeoLng) fmt.Printf("Rate: %.2f%%\n", taxInfo.Results[0].TaxSales*100) }
コードをファイル (main.go など) に保存し、プログラムを実行します。
go run main.go
次のような出力が表示されるはずです:
Normalized Address: 200 Spectrum Center Dr, Irvine, CA 92618-5003, United States Address Lat/Lng: 33.652530, -117.747940 Rate: 7.75%
zip.tax API を Golang アプリケーションに統合するのは簡単です。このガイドに従うことで、住所に基づいた正確な消費税情報を使用してアプリケーションを強化できます。詳細については、公式ドキュメントを参照してください。
ご質問やフィードバックがございましたら、お気軽に以下にコメントを残してください。コーディングを楽しんでください!
以上がzip.zax Sales Tax API を Golang アプリに統合するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。