Implementing a merchant search using the Praized API took about 10 minutes (mainly finding the right documentation), using my WORK framework:
class PraizedMerchants(bm_api.API):
"""See: http://code.google.com/p/praized/wiki/A_Second_Tutorial_Search"""
_uri_base = "http://api.praized.com/apitribe/merchants.xml"
_meta_path = "community"
_item_path = "merchants.merchant"
_page_max_path = 'pagination.page_count'
_page_max = -1
def __init__(self, api_key, slug = "apitribe", **ad):
bm_api.API.__init__(self, api_key = api_key, **ad)
self._uri_base = "http://api.praized.com/%s/merchants.xml" % slug
def CustomizePageURI(self, page_index):
if page_index > 1:
return "page=%s" % page_index
Partially hardcoding ‘apitribe’ as a ‘community slug’ is probably a bad idea. Anyhoo, here’s how you call it…
api_key = os.environ["PRAIZED_APIKEY"]
api = PraizedMerchants(api_key = api_key, slug = "david-janess-code")
api.SearchOn(
q = "Bistro",
l = "Toronto",
)
for item in api.IterItems():
print json.dumps(item, indent = 1)
… and a set if results, somewhat edited below. I’ll have to figure out what that “permalink” is all about (I’ve edited it to shorten it) … it could be something neat, but I haven’t quite grasped all the ins and outs of what Praized wants to accomplish as a business.
{
"@Index": 0,
"@Page": 1,
"short_url": "http://przd.com/zAU-7",
"pid": "af5bebd604f3d1517a8113e0a2e8cc58",
"updated_at": "2008-10-04T20:49:34Z",
"phone": "(416) 585-7896",
"permalink":
".../praized/places/ca/ontario/toronto/coffee-supreme-bistro?l=Toronto&q=Bistro",
"name": "Coffee Supreme Bistro",
"created_at": "2008-10-04T20:49:34Z",
"location": {
"city": {
"name": "Toronto"
},
"country": {
"code": "CA",
"name_fr": "Canada",
"name": "Canada"
},
"longitude": "-79.384071",
"regions": {
"province": "Ontario"
},
"postal_code": "M5J 1T1",
"latitude": "43.646347",
"street_address": "40 University Avenue"
}
}