diff --git a/HISTORY.md b/HISTORY.md index 31485937..da6a71d8 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -32,6 +32,13 @@ The amount of the next two or three donations you'll send they will be immediate # Th, 15 June 2017 | v7.2.0 +### Cache + +Declare the `iris.Cache alias` to the new, improved and most-suited for common usage, `cache.Handler function`. + +`iris.Cache` be used as middleware in the chain now, example [here](_examples/intermediate/cache-markdown/main.go). However [you can still use the cache as a wrapper](cache/cache_test.go) by importing the `github.com/kataras/iris/cache` package. + + ### File server - **Fix** [that](https://github.com/iris-contrib/community-board/issues/12). diff --git a/_examples/intermediate/cache-markdown/main.go b/_examples/intermediate/cache-markdown/main.go index 7d92630d..dcb24cce 100644 --- a/_examples/intermediate/cache-markdown/main.go +++ b/_examples/intermediate/cache-markdown/main.go @@ -4,7 +4,6 @@ import ( "time" "github.com/kataras/iris" - "github.com/kataras/iris/cache" "github.com/kataras/iris/context" ) @@ -59,12 +58,7 @@ All features of Sundown are supported, including: func main() { app := iris.New() - // first argument is the handler which response's we want to apply the cache. - // if second argument, expiration, is <=time.Second then the cache tries to set the expiration from the "cache-control" maxage header's value(in seconds) - // and if that header is empty or not exist then it sets a default of 5 minutes. - writeMarkdownCached := cache.Cache(writeMarkdown, 10*time.Second) // or CacheHandler to get the handler - - app.Get("/", writeMarkdownCached.ServeHTTP) + app.Get("/", iris.Cache(10*time.Second), writeMarkdown) // saves its content on the first request and serves it instead of re-calculating the content. // After 10 seconds it will be cleared and resetted. @@ -78,29 +72,3 @@ func writeMarkdown(ctx context.Context) { ctx.Markdown(markdownContents) } - -// Notes: -// Cached handler is not changing your pre-defined headers, -// so it will not send any additional headers to the client. -// The cache happening at the server-side's memory. -// -// see "DefaultRuleSet" in "cache/client/ruleset.go" to see how you can add separated -// rules to each of the cached handlers (`.AddRule`) with the help of "/cache/client/rule"'s definitions. -// -// The default rules are: -/* - // #1 A shared cache MUST NOT use a cached response to a request with an - // Authorization header field - rule.HeaderClaim(ruleset.AuthorizationRule), - // #2 "must-revalidate" and/or - // "s-maxage" response directives are not allowed to be served stale - // (Section 4.2.4) by shared caches. In particular, a response with - // either "max-age=0, must-revalidate" or "s-maxage=0" cannot be used to - // satisfy a subsequent request without revalidating it on the origin - // server. - rule.HeaderClaim(ruleset.MustRevalidateRule), - rule.HeaderClaim(ruleset.ZeroMaxAgeRule), - // #3 custom No-Cache header used inside this library - // for BOTH request and response (after get-cache action) - rule.Header(ruleset.NoCacheRule, ruleset.NoCacheRule) -*/