Beispiel #1
0
    def view(id):
        obj = cls.by_id(id)
        if obj is None:
            return NotFound(id)

        # check this before lazy-loading during serialization
        for v in ['updated_at', 'created_at']:
            if hasattr(obj, v):
                request.cache_key['modified'] = getattr(obj, v)
        validate_cache(request)

        return jsonify(obj)
Beispiel #2
0
def configure_caching(response_class):
    if not app.config.get('CACHE'):
        return response_class
    if request.method in ['GET', 'HEAD', 'OPTIONS'] \
        and response_class.status_code < 400:
        try:
            etag, mod_time = validate_cache(request)
            response_class.add_etag(etag)
            response_class.cache_control.max_age = 84600 * 1
            response_class.cache_control.public = True
            if mod_time:
                response_class.last_modified = mod_time
        except NotModified:
            return Response(status=304)
    return response_class