Cache Auction 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, as described in [Hack #82], 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, as described in [Hack #85].

  • Download only new entries by comparing the current total of entries with the total you recorded the last time the call was used, as described in [Hack #96].

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

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 (see [Hack #88]), 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, ...

Get eBay Hacks 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.