The following tutorial shows you one way to handle paging when a large amount of data is being returned from the MaxCDN API server. Usually, this type of handler is needed when retrieving raw log data that can be quite long. We’ve used a static limit of records per page of 1000 for the sake of code simplicity. The goal in the following example is to show bandwidth per country for each page and total bandwidth after all pages have loaded.
Python MaxCDN API example
print "Start Time: (yyyy-mm-dd)\n"
start = raw_input()
print "End Time: (yyyy-mm-dd)\n"
end = raw_input()
countries = {}
bw = {}
total = 0
i = 1
while(i > 0):
data = api.get('/v3/reporting/logs.json?start=' + start + '&limit=1000&end=' + end + '&page=' + str(i))
i += 1
records = data['records']
n = len(records)
if (n == 0):
i = 0
for j in range(0, n):
cntr = records[j]['client_country']
if cntr not in countries:
countries[cntr] = 0
countries[cntr] += 1
if cntr not in bw:
bw[cntr] = 0
bw[cntr] += records[j]['bytes']
total += 1
print "\n\nCurrent requests state: \n"
print countries
print "\nCurrent bandwidth state: \n"
print bw
end_line = "Next is page " + str(i)
if(i == 0):
end_line = ""
print end_line
print "Total: " + str(total)
print countries
print bw
Example output
Current requests state:
{u'BE': 1, u'FR': 3, u'DK': 2, u'HR': 2, u'DE': 85, u'JP': 2, u'HU': 2, u'BR': 9, u'BS': 1, u'FI': 1, u'KR': 1, u'BY': 1, u'CN': 3, u'RU': 4, u'NL': 7, u'NO': 1, u'TR': 1, u'LV': 1, u'NZ': 2, u'PK': 3, u'PH': 5, u'RO': 3, u'PL': 2, u'GR': 1, u'CL': 1, u'IQ': 1, u'CA': 9, u'IT': 3, u'CZ': 2, u'AR': 4, u'AU': 5, u'GB': 25, u'EU': 2, u'CR': 1, u'IE': 3, u'ID': 2, u'ES': 3, u'MA': 1, u'AP': 2, u'MY': 1, u'RS': 4, u'US': 772, u'SK': 5, u'MT': 1, u'SA': 1, u'UA': 1, u'MX': 2, u'SE': 5, u'IL': 1}
Current bandwidth state:
{u'BE': 82006, u'FR': 375014, u'DK': 219761, u'HR': 258807, u'DE': 1571331, u'JP': 82006, u'HU': 219761, u'BR': 732466, u'BS': 74548, u'FI': 80316, u'KR': 135093, u'BY': 82006, u'CN': 76239, u'RU': 743078, u'NL': 353602, u'NO': 82006, u'TR': 84306, u'LV': 82006, u'NZ': 164012, u'PK': 238812, u'PH': 200015, u'RO': 245859, u'PL': 487651, u'GR': 82006, u'CL': 618, u'IQ': 24717, u'CA': 632364, u'IT': 276265, u'CZ': 152642, u'AR': 325217, u'AU': 530420, u'GB': 2389339, u'EU': 582446, u'CR': 82006, u'IE': 188729, u'ID': 52526, u'ES': 357297, u'MA': 438629, u'AP': 258807, u'MY': 169542, u'RS': 7187784, u'US': 17925621, u'SK': 701076, u'MT': 82006, u'SA': 82006, u'UA': 176801, u'MX': 487651, u'SE': 349883, u'IL': 176801}
Next is page 2
Current requests state:
{u'BE': 1, u'FR': 3, u'DK': 2, u'HR': 2, u'SG': 1, u'DE': 106, u'JP': 3, u'HU': 2, u'BR': 9, u'BS': 1, u'FI': 1, u'KR': 1, u'BY': 1, u'CN': 3, u'RU': 5, u'NL': 7, u'NO': 1, u'TR': 1, u'LV': 1, u'NZ': 2, u'PK': 3, u'PH': 7, u'RO': 3, u'PL': 3, u'GR': 1, u'CL': 1, u'IQ': 1, u'CA': 12, u'IT': 3, u'CZ': 2, u'AR': 4, u'AU': 6, u'GB': 32, u'EU': 2, u'CR': 1, u'IE': 4, u'ID': 2, u'ES': 3, u'MA': 1, u'AP': 2, u'MY': 1, u'RS': 4, u'US': 957, u'SK': 5, u'MT': 1, u'SA': 1, u'UA': 7, u'MX': 2, u'SE': 5, u'IL': 1}
Current bandwidth state:
{u'BE': 82006, u'FR': 375014, u'DK': 219761, u'HR': 258807, u'SG': 82006, u'DE': 1975090, u'JP': 82006, u'HU': 219761, u'BR': 732466, u'BS': 74548, u'FI': 80316, u'KR': 135093, u'BY': 82006, u'CN': 76239, u'RU': 751261, u'NL': 353602, u'NO': 82006, u'TR': 84306, u'LV': 82006, u'NZ': 164012, u'PK': 238812, u'PH': 528331, u'RO': 245859, u'PL': 569657, u'GR': 82006, u'CL': 618, u'IQ': 24717, u'CA': 1027533, u'IT': 276265, u'CZ': 152642, u'AR': 325217, u'AU': 699962, u'GB': 2947641, u'EU': 582446, u'CR': 82006, u'IE': 269045, u'ID': 52526, u'ES': 357297, u'MA': 438629, u'AP': 258807, u'MY': 169542, u'RS': 7187784, u'US': 24784653, u'SK': 701076, u'MT': 82006, u'SA': 82006, u'UA': 185891, u'MX': 487651, u'SE': 349883, u'IL': 176801}
Next is page 3
Current requests state:
{u'BE': 1, u'FR': 3, u'DK': 2, u'HR': 2, u'SG': 1, u'DE': 106, u'JP': 3, u'HU': 2, u'BR': 9, u'BS': 1, u'FI': 1, u'KR': 1, u'BY': 1, u'CN': 3, u'RU': 5, u'NL': 7, u'NO': 1, u'TR': 1, u'LV': 1, u'NZ': 2, u'PK': 3, u'PH': 7, u'RO': 3, u'PL': 3, u'GR': 1, u'CL': 1, u'IQ': 1, u'CA': 12, u'IT': 3, u'CZ': 2, u'AR': 4, u'AU': 6, u'GB': 32, u'EU': 2, u'CR': 1, u'IE': 4, u'ID': 2, u'ES': 3, u'MA': 1, u'AP': 2, u'MY': 1, u'RS': 4, u'US': 957, u'SK': 5, u'MT': 1, u'SA': 1, u'UA': 7, u'MX': 2, u'SE': 5, u'IL': 1}
Current bandwidth state:
{u'BE': 82006, u'FR': 375014, u'DK': 219761, u'HR': 258807, u'SG': 82006, u'DE': 1975090, u'JP': 82006, u'HU': 219761, u'BR': 732466, u'BS': 74548, u'FI': 80316, u'KR': 135093, u'BY': 82006, u'CN': 76239, u'RU': 751261, u'NL': 353602, u'NO': 82006, u'TR': 84306, u'LV': 82006, u'NZ': 164012, u'PK': 238812, u'PH': 528331, u'RO': 245859, u'PL': 569657, u'GR': 82006, u'CL': 618, u'IQ': 24717, u'CA': 1027533, u'IT': 276265, u'CZ': 152642, u'AR': 325217, u'AU': 699962, u'GB': 2947641, u'EU': 582446, u'CR': 82006, u'IE': 269045, u'ID': 52526, u'ES': 357297, u'MA': 438629, u'AP': 258807, u'MY': 169542, u'RS': 7187784, u'US': 24784653, u'SK': 701076, u'MT': 82006, u'SA': 82006, u'UA': 185891, u'MX': 487651, u'SE': 349883, u'IL': 176801}
Total: 1230
{u'BE': 1, u'FR': 3, u'DK': 2, u'HR': 2, u'SG': 1, u'DE': 106, u'JP': 3, u'HU': 2, u'BR': 9, u'BS': 1, u'FI': 1, u'KR': 1, u'BY': 1, u'CN': 3, u'RU': 5, u'NL': 7, u'NO': 1, u'TR': 1, u'LV': 1, u'NZ': 2, u'PK': 3, u'PH': 7, u'RO': 3, u'PL': 3, u'GR': 1, u'CL': 1, u'IQ': 1, u'CA': 12, u'IT': 3, u'CZ': 2, u'AR': 4, u'AU': 6, u'GB': 32, u'EU': 2, u'CR': 1, u'IE': 4, u'ID': 2, u'ES': 3, u'MA': 1, u'AP': 2, u'MY': 1, u'RS': 4, u'US': 957, u'SK': 5, u'MT': 1, u'SA': 1, u'UA': 7, u'MX': 2, u'SE': 5, u'IL': 1}
{u'BE': 82006, u'FR': 375014, u'DK': 219761, u'HR': 258807, u'SG': 82006, u'DE': 1975090, u'JP': 82006, u'HU': 219761, u'BR': 732466, u'BS': 74548, u'FI': 80316, u'KR': 135093, u'BY': 82006, u'CN': 76239, u'RU': 751261, u'NL': 353602, u'NO': 82006, u'TR': 84306, u'LV': 82006, u'NZ': 164012, u'PK': 238812, u'PH': 528331, u'RO': 245859, u'PL': 569657, u'GR': 82006, u'CL': 618, u'IQ': 24717, u'CA': 1027533, u'IT': 276265, u'CZ': 152642, u'AR': 325217, u'AU': 699962, u'GB': 2947641, u'EU': 582446, u'CR': 82006, u'IE': 269045, u'ID': 52526, u'ES': 357297, u'MA': 438629, u'AP': 258807, u'MY': 169542, u'RS': 7187784, u'US': 24784653, u'SK': 701076, u'MT': 82006, u'SA': 82006, u'UA': 185891, u'MX': 487651, u'SE': 349883, u'IL': 176801}
If you have any questions or experience any issues, please reach out to the Support Team, live chat and ticket support are available 24/7.