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" } }