Code Monkey home page Code Monkey logo

Comments (7)

sybren9 avatar sybren9 commented on September 13, 2024 2

@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.

LueNC avatar LueNC commented on September 13, 2024 1

@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.

raman-m avatar raman-m commented on September 13, 2024 1

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.

raman-m avatar raman-m commented on September 13, 2024

Fix 1

      "DownstreamPathTemplate": "/apis/v1/mailboxes/",
      "UpstreamPathTemplate": "/api/mailboxes/",

Fix 2

      "DownstreamPathTemplate": "/apis/v1/mailboxes/?fake=bla-bla",
      "UpstreamPathTemplate": "/api/mailboxes/",

from ocelot.

raman-m avatar raman-m commented on September 13, 2024

@sybren9 What's up?

from ocelot.

raman-m avatar raman-m commented on September 13, 2024

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 OnMiddlewaresDownstreamUrlCreatorMiddleware with the note:

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.

raman-m avatar raman-m commented on September 13, 2024

@sybren9
While reviewing your contribution to our project, it turned out that your contribution was missing. 👉

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.