23.4.0
🔀 Routing Update (version 23.4.0) aka McDonald's release
Codenamed: McDonald's
Read the Docs: Ocelot 23.4.0
ℹ️ About
This minor release significantly upgrades the Routing feature by supporting embedded placeholders within path segments (between slashes). Additionally, the team has focused on enhancing the performance of Regex
objects.
🆕 What's new?
- Routing: Introducing the new "Embedded Placeholders" feature by @ggnaegi.
As of November 2024, Ocelot was unable to process multiple placeholders embedded between two forward slashes. It was also challenging to differentiate the placeholder from other elements within the slashes. For example,/{url}-2/
for/y-2/
would yield{url} = y-2
. We are excited to introduce an enhanced method for evaluating placeholders that allows for the resolution of placeholders within complex URLs.
For additional information, refer to PR #2200.
🆙 Focus On
Features: Routing, Core, Rate Limiting, Middleware Injection
- Routing: The new feature is "Embedded Placeholders" by @ggnaegi.
- Core: All
Regex
logic has been refactored by @EngRajabi.
The Ocelot Core now boasts improved performance ofRegex
objects, striving to adhere to the Best Practices for Regular Expressions in .NET. It is estimated that each request could save from 1 to over 10 microseconds in processing time (though no benchmarks have been developed to measure this). - Rate Limiting: The persistent issue with Rate Limiting headers has been resolved by @jlukawska.
The problem was the absence of unofficialX-Rate-Limit-*
headers (found in the RateLimitingHeaders class) in theRateLimitingMiddleware
's response. For more details, see PR #1307.
Note that these unofficial headers have not yet been documented, so they may be subject to change since Ocelot's RateLimiting headers do not align with industry standards. - Middleware Injection: The
OcelotPipelineConfiguration.ClaimsToHeadersMiddleware
property has been introduced by @kesskalli.
This new property enables the overriding of the ClaimsToHeadersMiddleware. For additional information, refer to PR #1403.
Documentation for v23.4.0
- Routing: Introducing a new section on Embedded Placeholders
- Middleware Injection: Documentation now includes the ClaimsToHeadersMiddleware feature
Honoring 🏅 aka Top Contributors 👏
1st 🥇 goes to Mohsen Rajabi for delivering 1 feature in 12 files changed
2nd 🥈 goes to Jolanta Łukawska for delivering 1 feature in 8 files changed
3rd 🥉 goes to Karim Esskalli for delivering 1 feature in 6 files changed
Starring ⭐ aka Release Influencers
⭐ Mohsen Rajabi, @EngRajabi
⭐ Jolanta Łukawska, @jlukawska
⭐ Raman Maksimchuk, @raman-m
⭐ Karim Esskalli, @kesskalli
⭐ Guillaume Gnaegi, @ggnaegi
Features in Release 23.4.0
Logbook
- 41fc9bd by Raman Maksimchuk on Monday, November 18 at 23:40 →
Release 23.4 | Routing Update | MGGA release | +semver: minor (#2206) - 27d3df2 by Guillaume Gnaegi on Sunday, November 17 at 15:24 →
#2199 Adding support of placeholder matching between slashes👍 (#2200) - d76fc95 by Mohsen Rajabi on Saturday, November 16 at 21:39 →
Best practices for regular expressions versusRegex
performance review (#1348) - da9d6fa by jlukawska on Saturday, November 9 at 18:09 →
#1305 Populate RateLimiting headers in the originalHttpContext
response accessed viaIHttpContextAccessor
(#1307) - d310508 by kesskalli on Tuesday, November 5 at 19:09 →
Override theClaimsToHeadersMiddleware
by theOcelotPipelineConfiguration
settings (#1403)
What's Changed
- Override the
ClaimsToHeadersMiddleware
by theOcelotPipelineConfiguration
settings by @kesskalli in #1403 - #1305 Populate RateLimiting headers in the original
HttpContext
response accessed viaIHttpContextAccessor
by @jlukawska in #1307 - Best practices for regular expressions versus
Regex
performance review by @EngRajabi in #1348 - #2199 Adding support of placeholder matching between slashes👍 by @ggnaegi in #2200
- Release 23.4 | Routing Update | MGGA release | +semver: minor by @raman-m in #2206
New Contributors
- @kesskalli made their first contribution in #1403
Full Changelog: 23.3.6...23.4.0