Comments (7)
@raman-m absolutely deplorable to introduce such a breaking change and offering no backwards compatibility.
And why is this not communicated at all on the release notes?
from ocelot.
@raman-m We should not need a workaround for something that has worked since Ocelot 15. Is there any reason that it is desirable to not allow an ending backslash?
from ocelot.
Docs
We should not need a workaround for something that has worked since Ocelot 15.
The Ocelot project evolves, my dear!
If you need old behavior, don't upgrade the version! Stay on version 15.x!!!
Is there any reason that it is desirable to not allow an ending backslash?
Once again: Empty Placeholders
It allows slashes if you define the following Catch All route:
"DownstreamPathTemplate": "/apis/v1/mailboxes/{catchAll}",
"UpstreamPathTemplate": "/api/mailboxes/{catchAll}",
Incoming URL path must be: /api/mailboxes/
, note with slash!
Then the downstrean URL path will be: /apis/v1/mailboxes/
, note with slash!
Hope it helps!
from ocelot.
Fix 1
"DownstreamPathTemplate": "/apis/v1/mailboxes/",
"UpstreamPathTemplate": "/api/mailboxes/",
Fix 2
"DownstreamPathTemplate": "/apis/v1/mailboxes/?fake=bla-bla",
"UpstreamPathTemplate": "/api/mailboxes/",
from ocelot.
@sybren9 What's up?
from ocelot.
Dear @sybren9,
Please be aware that Ocelot is open-source software, available at no cost, and as such, your judgment as a customer does not apply❗
such a breaking change
I believe that making requests with an invalid URL does not constitute a breaking change, as any HTTP tool can encounter an error. Additionally, I want to convey to Ocelot's enthusiasts that using invalid URLs to judge the validity of a configuration is not the correct approach.
The version 23 Empty Placeholders feature has been implemented and the corresponding documentation is now available.
offering no backwards compatibility.
The author highlighted a unique case where the absence of a trailing slash caused one of the many downstream services to fail, though the reason was not provided. It's important to understand that the Ocelot team cannot be held accountable for the instability of downstream services utilized by the community. Predicting how a new version will affect the behavior of downstream services is challenging and often not feasible. Community feedback is vital in monitoring backward compatibility. Rather than guaranteeing strict backward compatibility, we suggest a gradual migration of the solution through a review of the configuration, simply by updating the ocelot.json
file.
And why is this not communicated at all on the release notes?
Have you read our 23.0.0 Release Notes at all?
See Focus On → Middlewares → DownstreamUrlCreatorMiddleware
with the note:
DownstreamUrlCreatorMiddleware
: Fixed bug for ending/omitting slash in path templates aka Empty placeholders feature by @AlyHKafoury
This scenario presents a classic dilemma: on one hand, the community desires bug fixes and new behaviors, while on the other, the new feature impacts routing. As the product owner, I have the authority to determine the product's evolution. I believe that the new functionalities in #748 and #1911 will benefit the community due to the high level of interest, despite the potential effects on backward compatibility.
P.S.
Every major version update typically requires testing and possibly stabilization based on community feedback, which is a standard part of the natural Software Development Life Cycle (SDLC).
Beyond the standard stabilization phase, we advise smooth migrations following valuable and reasonable discussions.
from ocelot.
@sybren9
While reviewing your contribution to our project, it turned out that your contribution was missing. 👉
- No commits means no contributions
- No issues means no help to improve the project
- No pull requests means no possible contributions
- No discussions means your low interest in our product
But you judge❗🤯
In my view, debating the backward compatibility of an OSS product is only justifiable if the user has made contributions; unfortunately, you have not.
from ocelot.
Related Issues (20)
- SignalR no connection in `ws` mode HOT 1
- Is ocelot support sharing routes and rate limit configuration between it's instances if we publish more than one ocelot instance ?
- Error Code: UnableToFindDownstreamRouteError (404) HOT 1
- After Upgrade to 23.3.3 from 23.2.2 cluster name is being used in place of service address HOT 9
- After Upgrade to 23.3.3 from 23.2.2 about every 20th - 30th request finished with status code 500 HOT 42
- Invalid pattern ** HOT 1
- Injection middleware not working HOT 2
- `Regex` exception when route template placeholder contains invalid character ')' HOT 12
- help me ocelot+consul has 404 HOT 3
- Concurrent requests with different services, using consul, returns the same service and then 404 HOT 19
- IIS Windows Auth Intermittent 401.1 HOT 10
- Ocelot - Azure AD (Entra ID) Authentication Example
- Update from 18.0.0 to 23.0.0 broke upstream URLs with 503 HOT 4
- Incorrect Routing when a configuration exists with query param wildcard HOT 4
- 23.3.0 broken HOT 2
- Catch All functionality priority routing partially broken HOT 8
- who has encountered this problem,The remote certificate is invalid because of errors in the certificate chain: PartialChain
- TODO and other follow-up tasks HOT 4
- Using Signalr, web request 404 HOT 7
- Routing not working with special character in UpstreamPathTemplate HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ocelot.