Cache Listing Data to Improve API Efficiency

Reduce the number of API calls your program makes and work within your daily API allotment.

One of the requirements of certification [Hack #102] is that your application or script does not make more calls or retrieve more data than is absolutely necessary. This is typically accomplished in any of three ways:

  • Restricting the result set to a specific date range [Hack #110]

  • Downloading only new entries by comparing the current total of entries with the total you recorded the last time the call was used [Hack #121]

  • Caching retrieved data so that it doesn’t have to be retrieved again, as described in this hack

Which data you cache and how you do it depends on the type of data you’re working with.

When caching input, probably the most useful place to start is by recording the item numbers of all auctions you’re currently selling. Assuming you’re using GetItem to upload your listings to eBay [Hack #113] , you can simply save the resulting item number in a file, like this:

open (OUTFILE,">>$localdir/auctionlist.txt");
   print OUTFILE "$rsp->{Item}[0]{Id},$rsp->,{Item}[0]{EndTime}\n;;
  close (OUTFILE);

Eventually, the file will look like this:

4500207651, 2005-07-15 20:43:32
4500207783, 2005-07-16 08:14:18
4500208002, 2005-07-18 19:00:31

with each line containing one item number and one end date, separated by a comma. Then, instead of using the GetSellerList API call found in many hacks in this chapter, you can simply load the list, like this:

 open (INFILE,">>$localdir/auctionlist.txt"); ...

Get eBay Hacks, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.