🔀 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
Regexlogic has been refactored by @EngRajabi.
The Ocelot Core now boasts improved performance ofRegexobjects, 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.ClaimsToHeadersMiddlewareproperty 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 versusRegexperformance review (#1348) - da9d6fa by jlukawska on Saturday, November 9 at 18:09 →
#1305 Populate RateLimiting headers in the originalHttpContextresponse accessed viaIHttpContextAccessor(#1307) - d310508 by kesskalli on Tuesday, November 5 at 19:09 →
Override theClaimsToHeadersMiddlewareby theOcelotPipelineConfigurationsettings (#1403)
What's Changed
- Override the
ClaimsToHeadersMiddlewareby theOcelotPipelineConfigurationsettings by @kesskalli in #1403 - #1305 Populate RateLimiting headers in the original
HttpContextresponse accessed viaIHttpContextAccessorby @jlukawska in #1307 - Best practices for regular expressions versus
Regexperformance 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