At the Forge - eBay Web Services
eBay's API, particularly for SOAP and XML, is rich and extensive. This is in addition to the simple, but limited, REST API that we used for the example in Listing 1. However, eBay's tagging of metadata, or information about each listing, is rather limited, especially when compared with Amazon. Perhaps this is because of the difference between the two sites. Amazon, as a vendor with inventory, knows and can pull up information about each item's dimensions, weight and ISBN. By contrast, eBay's only real information about each sold item is its categorization, asking price (and bidding information) and the text used to describe it.
There is a provision in the SOAP and XML APIs to look for items by ExternalProductID, which can be an ISBN or UPC. But when it comes to metadata describing each object, Amazon has beaten eBay hands down.
Amazon also is friendlier when it comes to registration and usage. Amazon makes it easy to register and easy to get started. Its forums are full of friendly people with useful advice. And, it sets relatively straightforward rules of use for its data.
eBay also differs from Amazon in how many queries it allows an application to make. Amazon doesn't restrict the number of queries, except by saying there should be no more than one per second, per IP address. eBay, by contrast, has a 10,000-query limit for each application. However, this limit can be raised substantially if you go through a more thorough certification process, giving eBay more information about your application, how it works and how you intend to use it.
The companies also differ in how many results they return. Each page from eBay contains up to 400 items, as opposed to Amazon's ten. In both cases, you can request subsequent “pages” of data, until you get information about all of the listings that matched your query. In this case, eBay's larger format is a significant improvement for people looking for popular items that might be available from many sellers.
Finally, eBay offers a dashboard showing which calls you have made and which were not compliant with its compatibility rules. This is an excellent feature—especially the part where it tracks how many queries succeeded and failed. I don't expect many of my REST queries to fail after I have debugged them, but it's possible that this could happen.
The bottom line is that I'm far more impressed with everything having to do with Amazon's Web services. eBay clearly is trying to improve things, with extensive documentation, developer forums and a help desk offering paid support. Nevertheless, it remains far inferior to what Amazon is offering. And, although they are not directly comparable, they also are inferior to Google's offerings in the Web services arena.
That said, eBay is a major player in the e-commerce world, and access to its data might well be worth the pain you encounter in using it. Plus, once you have gotten over the registration hurdles, you likely will be using only a handful of API calls, with minor tweaks and changes over time.
eBay's recent changes to its developer program are a welcome step forward. With three interfaces (SOAP, XML and REST) and an extensive set of methods available for developers to use, it's possible to glean all sorts of data from eBay's stores and auctions. Unfortunately, this all comes with a price; with less metadata and an unnecessarily confusing registration process, eBay's offering is far less impressive than it could be.
Resources for this article: /article/9066.
Reuven M. Lerner, a longtime Web/database consultant, is currently a PhD student in Learning Sciences at Northwestern University in Evanston, Illinois. He and his wife recently celebrated the birth of their son Amotz David.
Webinar: 8 Signs You’re Beyond Cron
11am CDT, April 29th
Join Linux Journal and Pat Cameron, Director of Automation Technology at HelpSystems, as they discuss the eight primary advantages of moving beyond cron job scheduling. In this webinar, you’ll learn about integrating cron with an enterprise scheduler.Join us!
|Android Candy: Intercoms||Apr 23, 2015|
|"No Reboot" Kernel Patching - And Why You Should Care||Apr 22, 2015|
|Return of the Mac||Apr 20, 2015|
|DevOps: Better Than the Sum of Its Parts||Apr 20, 2015|
|Play for Me, Jarvis||Apr 16, 2015|
|Drupageddon: SQL Injection, Database Abstraction and Hundreds of Thousands of Web Sites||Apr 15, 2015|
- Tips for Optimizing Linux Memory Usage
- "No Reboot" Kernel Patching - And Why You Should Care
- DevOps: Better Than the Sum of Its Parts
- Return of the Mac
- Android Candy: Intercoms
- Drupageddon: SQL Injection, Database Abstraction and Hundreds of Thousands of Web Sites
- Non-Linux FOSS: .NET?
- Play for Me, Jarvis
- Designing Foils with XFLR5