def get(self): full = self.request.GET.get('full', False) limit = self.request.params.get('limit', 20) offset = self.request.params.get('offset', 0) all_beers = Beer.all(keys_only=not full) total = all_beers.count(read_policy=db.EVENTUAL_CONSISTENCY, deadline=5) payload = [a_beer for a_beer in all_beers.run(offset=offset, limit=min(limit, total))] if not payload: raise webob.exc.HTTPNotFound() data = {} if not full: data['beers'] = [webapp2.uri_for('beer', beer_id=beer.name()) for beer in all_beers] else: data['beers'] = [funcs.convert_model(beer) for beer in all_beers] data['meta'] = funcs.meta_ok() self.response.write(json.json.dumps(data))