79 Commits

Author SHA1 Message Date
M. Efe Çetin
8ec62a64cc
🧹 update: add methods configuration for cache middleware (#2081)
* 🧹 update: add methods configuration for cache middleware

* 🧹 update: add methods configuration for cache middleware
2022-09-11 13:11:33 +02:00
Amir Hossein
ffb2d4cb1a
fix unhandled error in cache package tests (#2049)
* fix unhandled errors

* fix unhandled error in cache package test

* omit variable type

* omit variable type

* rename variable because collide with the imported package name
2022-08-26 14:10:46 +02:00
M. Efe Çetin
6669ec4486
📝 docs: gofmt & add missing copyright texts (#2013) 2022-08-15 20:25:26 +02:00
Vladislav
aa229287cf
🔥 Feature: Add max size to cache (#1892)
* Cache middleware size limit

* Replace MaxInt with MaxInt32. Add comments to benchmark

* Avoid allocation in heap push. Small fixes

* Count body sizes instead of entries

* Update cache/readme
2022-05-10 08:50:26 +02:00
Pinank Solanki
bb9ac8feaf
🐛 Fix expiration time in cache middleware (#1881)
* 🐛 Fix: Expiration time in cache middleware

* Custom expiration time using ExpirationGenerator is also functional
now instead of default Expiration only

* 🚨 Improve Test_CustomExpiration

* - stabilization of the tests
- speed up the cache tests
- fix race conditions in client and client tests

Co-authored-by: wernerr <rene@gofiber.io>
2022-05-01 11:43:46 +02:00
akp
e974c6793f
RFC: Return an instance of *fiber.Error when no handler found (#1847)
* Return an instance of `*fiber.Error` when no handler found

When a handler cannot be found for a given path, previously Fiber
would construct a plaintext response that cannot be modified.

This commit switches to returning a new instance of `*fiber.Error`
with identical error message so that users can customise the look
of their 404 pages.

Signed-off-by: AKP <tom@tdpain.net>

* Fix `Test_App_Next_Method`

This test was failing as the error returned by `c.Next()` that's
required to generate the correct 404 status code was not being
passed through the middleware and being silently ignored.

Signed-off-by: AKP <tom@tdpain.net>

* Fix `Test_Logger_All`

Signed-off-by: AKP <tom@tdpain.net>

* Fix `Test_Cache_WithHeadThenGet` test

As far as I can tell, this test is meant to check that a cached
HEAD request to a given endpoint does not return the cached
content to a GET request to the same endpoint, and the test has
been altered to correctly check for this.

Signed-off-by: AKP <tom@tdpain.net>
2022-04-05 08:39:53 +02:00
Théotime Lévêque
1cddc56f13
Cache middleware: Store e2e headers. (#1807)
*  Cache middleware: Store e2e headers.

As defined in RFC2616 - section-13.5.1, shared caches MUST
store end-to-end headers from backend response and MUST be
transmitted in any response formed from a cache entry.

This commit ensures a stronger consistency between responses
served from the handlers & from the cache middleware.

*  Cache middleware: Add flag for e2e headers.

Set flag to prevent e2e headers caching to
be the default behavior of the cache middleware.
This would otherwise change quite a lot the
experience for cache middleware current users.

*  Cache middleware: Add Benchmark for additionalHeaders feature.

*  Cache middleware: Rename E2Eheaders into StoreResponseHeaders.

E2E is an acronym commonly associated with test.
While in the present case it refers to end-to-end
HTTP headers (by opposition to hop-by-hop), this
still remains confusing. This commits renames it
to a more generic name.

*  Cache middleware: Update README

*  Cache middleware: Move map instanciation.

This will prevent an extra memory allocation for users
not interested in this feature.

*  Cache middleware: Prevent memory allocation when StoreResponseHeaders is disabled.

*  Cache middleware: Store e2e headers. #1807
- use set instead of add for the headers
- copy value from the headers -> prevent problems with mutable values

Co-authored-by: wernerr <rene@gofiber.io>
2022-03-08 10:18:04 +01:00
Théotime Lévêque
d0934df656
✏️ Cache middleware: Fix comment typo in manager.go. (#1804) 2022-03-05 15:36:51 +03:00
liaohongxing
1fd6eabba9
fix cache docs error (#1769) 2022-02-12 13:00:00 +01:00
apoq
b9efc76722
Fix cache mutex lock (#1764) 2022-02-11 09:48:52 +01:00
Jesse Quinn
d411ec10d6
added HEAD method to caching (#1730)
* added HEAD method to caching

* changed key due to head and get sharing same key

* Update cache.go

- add a improvement task for later

* Update cache.go

correct comment

Co-authored-by: Jesse Quinn <jesse.quinn@zpesystems.com>
Co-authored-by: RW <rene@gofiber.io>
2022-01-24 16:36:46 +01:00
djunny
f9d5f787af
Feature: [Cache] add ExpirationGenerator for generate custom Expiration (#1618)
* Feature: [Cache] add ExpirationGenerator for generate custom Expiration

* fix: add document and code snippet for README

Co-authored-by: dj <github@djunny.com>
2021-11-11 11:30:38 +01:00
Gusted
7b7dcf29f7
♻️ Tidy up the codebase (#1613)
* run gofmt

* add t.Helper()

* Simplify assigns

* Simplify make operation

* Remove unused field in struct

* Fix typo

* Run gofumpt ./

* Consistent spacing

* len(...) can never be negative

* Use ReplaceAll

* Simplify operation

* Remove deadcode

* Fix typo

* Tidy up `} else { if ...`

* Fix AssertEqual

* Remove t.Helper() to fix go1.14.15
2021-11-05 08:00:03 +01:00
liaohongxing
a6aea1cdc5
fix cache docs error (#1612) 2021-11-03 16:49:26 +01:00
Michael Weiss
743d8ec08c
Fix comment (#1597)
When merging #1310, the corresponding adaptation of a code comment appears to have gone forgotten.
2021-10-25 18:37:50 +02:00
RW
2272e4a6b1
🐛 Get unexpected results from cache #1529 (#1531) 2021-09-15 14:20:43 +02:00
RW
d777d889bb
Fix cache expired test (#1461)
* Improve/Stabilize the "Test_Cache_Expired" test run
2021-07-30 20:19:18 +02:00
Kazumasa Takenaka (Bamboo)
f5338266e3
fix typo (#1442)
paramters -> parameters
avilable  -> available
seperated -> separated
2021-07-17 17:20:14 +02:00
Javad Rajabzade
7609117cec
Improved some conditions (#1386)
* simplify `u <= (1<<7)-1` to `u < (1 << 7)`

* It's not recommended to use `len` for empty string, we can check with string with ""

* It's not recommended to use `len` for empty string, we can check with string with ""

* It's not recommended to use `len` for empty string, we can check with string with ""

* It's not recommended to use `len` for empty string, we can check with string with ""

* Instead Bool comparison can using simplified bool check if !var = false checking

* Unnecessary use of fmt.Sprintf for value without format

* For check condition two value not required ! method

* nil check may not be enough for slice, better check with len

* function parameters combined

* When the form returns error information, the text content should not start with a capital letter or end with a punctuation mark

* error var invalidPath should have name of the form errFoo, It is recommended that the error variables that are part of an API should be named

* change to condition len(x), it's faster https://github.com/gofiber/fiber/pull/1386#discussion_r652369520

* Update write.go

* Update write_bytes.go

* Update store.go

Co-authored-by: RW <rene@gofiber.io>
2021-06-17 22:03:59 +02:00
Wei Lun
bca01cc9cc
🔥 Feature: add cache header to show cache status (#1368)
* add cache header to show cache status

* update default CacheHeader to X-Cache

* add CacheHeader test

* Update cache_test.go

use constants in test

Co-authored-by: RW <rene@gofiber.io>
2021-06-13 10:52:03 +02:00
Ivan Sotnikov
15cb3dc025
🐛 Cache Middleware - Race condition in the cache expiration logic. Round 2 (#1310)
* 🐛 fix: decrease watchdog period time
2021-05-04 09:18:48 +02:00
Roman
ca0e784fb9
Refactor cache middleware to not-use the deprecated methods (#1246)
* ♻️ refactor: cache: don't use the deprecated `SafeBytes` and use `CopyBytes` instead

* ♻️ refactor: utils: remove deprecated and unused methods
2021-03-30 23:31:03 +02:00
Ivan Sotnikov
d9c13d3442
🐛 Set expiration time in test to 1.5 due to the timer error (#1229) 2021-03-19 19:10:53 +01:00
Ivan Sotnikov
b517de85ec
🐛 update expiration for expired entry (#1228) 2021-03-17 08:08:44 +01:00
tianjipeng
08a2e7a82d ajust cache middleware config.Next position 2021-01-26 10:26:13 +08:00
hi019
494474aebd
Merge branch 'master' into master 2020-12-13 22:08:51 -05:00
Fenny
142e6e53be 🩹 fix #1055 2020-12-06 16:43:24 +01:00
Fenny
323d9d89cc 🩹 fix manager logic 2020-11-23 07:38:42 +01:00
hi019
bc7b240158 improve mw 2020-11-21 12:36:16 -05:00
hi019
52ec20c3b4 do basicauth, cache and compress 2020-11-21 12:23:35 -05:00
Fenny
8fe458011d 📦 add mapstore 2020-11-20 11:43:07 +01:00
Fenny
f714660ca9 🩹 update mutex logic
Co-Authored-By: RW <7063188+ReneWerner87@users.noreply.github.com>
2020-11-17 13:15:32 +01:00
Fenny
cf4f60e965 🩹 update lock
Co-Authored-By: RW <7063188+ReneWerner87@users.noreply.github.com>
2020-11-17 13:12:42 +01:00
Fenny
9d5b58d210 🩹 remove mutex
Co-Authored-By: RW <7063188+ReneWerner87@users.noreply.github.com>
2020-11-17 13:06:59 +01:00
Fenny
a2f54222bb 🩹 remove return nil
Co-Authored-By: RW <7063188+ReneWerner87@users.noreply.github.com>
2020-11-17 13:05:17 +01:00
Fenny
9be8eedcc6 🩹 fix cache mw
Co-Authored-By: RW <7063188+ReneWerner87@users.noreply.github.com>
2020-11-17 13:03:18 +01:00
Fenny
56cf415a0a simplify storage handler
Co-Authored-By: RW <7063188+ReneWerner87@users.noreply.github.com>
2020-11-17 10:40:11 +01:00
Fenny
bb3a7fe5da 🩹 fix cache
Co-Authored-By: RW <7063188+ReneWerner87@users.noreply.github.com>
2020-11-17 08:33:07 +01:00
Fenny
de912755f7 📦 update session 2020-11-16 14:22:44 +01:00
Fenny
8bd50de610 🧹 housekeeping 2020-11-11 13:54:27 +01:00
Fenny
a9d628641e 🍌 increase sleep for workflow 2020-11-06 02:29:31 +01:00
Fenny
f02b8d8317 Merge remote-tracking branch 'upstream/master' 2020-11-06 02:28:39 +01:00
Fenny
0d3d6d9fe8 📦 update fasthttp and storage interface 2020-11-06 01:52:05 +01:00
Jay Chung
0146b92ba6 refactor: clean up 2020-11-04 23:17:00 +08:00
Joey
5d6e62b7c1
Merge pull request #984 from Fenny/master
✏ update Storage behaviour
2020-10-30 23:55:56 -07:00
Fenny
7892ab62bf 📦 update Storage behaviour 2020-10-31 07:51:44 +01:00
Tom
1ad625704d
📦 Add Key option to Cache config (#983) 2020-10-31 01:19:33 +00:00
Fenny
7ca70fcb17 🔍 verify body length
Co-Authored-By: kiyon <kiyon@gofiber.io>
2020-10-29 06:54:41 +01:00
Fenny
f5314b66b9 📈 update benchmark
Co-Authored-By: kiyon <kiyon@gofiber.io>
2020-10-29 06:50:09 +01:00
Fenny
cee3c759e3 🦺 copy cType in cache mw
Co-Authored-By: kiyon <kiyon@gofiber.io>
2020-10-29 06:43:59 +01:00