Click here to Skip to main content
Click here to Skip to main content

"Hello Amazon!" - Making a first request to the Amazon Product API

By , 24 Jun 2009
Rate this:
Please Sign up or sign in to vote.

Introduction

This article is a simple "Hello"-type program to instantiate and interpret a simple request to the Amazon ECommerce Services.

Background

In order to make a request, you simply must supply your own AWSAccessKeyID. You can get one for free at http://aws.amazon.com/. Amazon does supply some code to perform a similar test at http://docs.amazonwebservices.com/AWSECommerceService/2009-01-06/GSG/index.html?ImplementinganA2SRequest.html, but it doesn't compile as is, and doesn't show the nice features available for using the information in the response without having to process the raw XML.

Using the code

In order to make use of the product API, you need to add it as a service reference to your project. In Solution Explorer, right-click on References and select "Add Service Reference...". Use http://webservices.amazon.com/AWSECommerceService/AWSECommerceService.wsdl as the address. Add a using reference anyplace you want to access the full set of objects and methods in the service. Web Services are wonderful - two steps, and you can use intellisense to sort through the functionality.

To get information from the API, you need to first create a request. That request is attached to a search which is just a wrapper for one or more searches that also holds the AWSAccessKeyID. Finally, a port is opened and an ItemSearch is invoked with the search as a parameter.

// In order to find information about an item we need at least one search request
// This search request (and any others) is attached to a search
// finally the search is submitted on a port and returns a response

// Create the request object
ItemSearchRequest request = new ItemSearchRequest();
            
// Fill request object with request parameters
request.ResponseGroup = new string[] { "ItemAttributes" };

// Set SearchIndex to All and use the scanned EAN
// as the keyword, this should generate a single response 
request.SearchIndex = "All";
request.Keywords = txtLookupEAN.Text;

// Make the item search 
ItemSearch search = new ItemSearch();

// It is ABSOLUTELY CRITICAL that you change
// the AWSAccessKeyID to YOUR uniqe value
// Signup for an account (and AccessKeyID) at http://aws.amazon.com/ 
search.AWSAccessKeyId = "[INSERT YOUR ACCESS ID HERE]";

// Set the request on the search wrapper - multiple requests
// can be submitted on one search
search.Request = new ItemSearchRequest[] { request };

// Make the port
AWSECommerceServicePortTypeClient port = 
             new AWSECommerceServicePortTypeClient();

//Send the request, store the response and display some of the results
ItemSearchResponse response = port.ItemSearch(search);

Points of Interest

One small difficulty in searching for information is that while Amazon continues to rename the technology for ECommerce Services, the original name is still in widespread use. Originally, it was called ECS (ECommerce Services), then it was named "Amazon Associates Web Service", and now it is officially "Product Advertising API". However, the base WSDL document is still named AWSECommerceService.wsdl.

History

None so far.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

kcs2c

Unknown
No Biography provided

Comments and Discussions

 
GeneralMy vote of 5 PinmvpKanasz Robert27-Sep-12 8:31 
not bad
QuestionOutdated Pinmembercipherwar4-Apr-12 8:59 
GeneralYou also need to sign the requests now Pinmemberreinux11-Jun-10 9:10 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Mobile
Web01 | 2.8.140415.2 | Last Updated 24 Jun 2009
Article Copyright 2009 by kcs2c
Everything else Copyright © CodeProject, 1999-2014
Terms of Use
Layout: fixed | fluid