Search code examples
javaspringspring-bootrestpath-variables

Path variable having special characters like # in Spring boot


I'm using Spring Boot 2.4.6. For delete APIs getting 405 method not found. My endpoint is like: beauty/v1/sites/addressTemplates/:templateId

Path variable: #@$%#

Can someone please suggest what can be done to make this behavior as not complaining for 405? Please direct me to other questions in case I'm missing something.


Solution

  • I guess that your issue has nothing to do with Spring. Maybe you are trying to compose the whole URL by using reserved characters.

    In a URL, a hash mark, number sign, or pound sign ( # ) points a browser to a specific spot in a page or website. It is used to separate the URI of an object from a fragment identifier. Source.

    Which means that an URL which looks like:

    beauty/v1/sites/addressTemplates/#@$%#

    is not exactly what you imagine it to be because # is interpreted in a special way. What you have to do is to percent encode the "special" path variable so it will look like this at the end:

    beauty/v1/sites/addressTemplates/%23%40%24%25%23

    Then Spring will not complain anymore and will resolve properly the endpoint.