pquerna / cachecontrol

Golang HTTP Cache-Control Parser and Interpretation
Apache License 2.0
136 stars 17 forks source link

Consider adding strict parsing as an option #7

Open mbyczkowski opened 6 years ago

mbyczkowski commented 6 years ago

I've been dealing with some parsing issues as some servers don't conform to HTTP Caching spec. Since the error vars are exported I could I just handle it in my code, but it seems to me that having something like this:

cachecontrol.CachableResponse(req, res, cachecontrol.Options{StrictParsing: false})

would be pretty beneficial. Then, these are errors could be ignored and defaults would be assumed for the fields:

ErrQuoteMismatch
ErrMaxAgeDeltaSeconds 
ErrMaxStaleDeltaSeconds
ErrMinFreshDeltaSeconds
ErrNoCacheNoArgs
ErrNoStoreNoArgs
ErrNoTransformNoArgs
ErrOnlyIfCachedNoArgs
ErrMustRevalidateNoArgs
ErrPublicNoArgs
ErrProxyRevalidateNoArgs
pquerna commented 6 years ago

Do you think "errors" should be treated as a reason for non-cachability?

eg, extend https://godoc.org/github.com/pquerna/cachecontrol/cacheobject#Reason

ReasonErrQuoteMismatch.

Otherwise I think the main APIs would need to be revised to have a separate way for returning specific parse errors?