PUT: PathVariable and RequestParam don't work togetherHow does the Java 'for each' loop work?What's the difference between a POST and a PUT HTTP REQUEST?PUT vs. POST in RESTShould a RESTful 'PUT' operation return somethingHow to send a PUT/DELETE request in jQuery?Why don't Java's +=, -=, *=, /= compound assignment operators require casting?@RequestParam vs @PathVariableGetting parameters from PUT HttpServletRequest?REST API - PUT vs PATCH with real life examplesMethod With @PathVariable In SpringBoot Returns Empty Response

Is there a way to shorten this while condition?

"It is what it is" in French

Span command across LaTeX environments

What is the purpose of this "red room" in "Stranger Things"?

Is it okay to paraphrase other authors' literature reviews?

What exactly makes a General Products hull nearly indestructible?

How can Kazakhstan perform MITM attacks on all HTTPS traffic?

High income and difficulty during interviews

How could an engineer advance human civilization by time traveling to the past?

Mavensmate: Getting error client identifier invalid while authentication to salesforce

Sci-fi short story: plants attracting spaceship and using them as a agents of pollination between two planets

Correct use of smash with math and root signs

how to add 1 milliseconds on a datetime string?

Are irregular workouts through the day effective?

Are symplectomorphisms of Weil–Petersson symplectic form induced from surface diffeomorphisms?

Is it possible to eat quietly in Minecraft?

Using paddles to support a bug net

Why are there not any MRI machines available in Interstellar?

Can I pay with HKD in Macau or Shenzhen?

What is the best word describing the nature of expiring in a short amount of time, connoting "losing public attention"?

JavaScript Sort Stack Coding Challenge

Why must API keys be kept private?

Travelling from Venice to Budapest, making a stop in Croatia

Why is a dedicated QA team member necessary?



PUT: PathVariable and RequestParam don't work together


How does the Java 'for each' loop work?What's the difference between a POST and a PUT HTTP REQUEST?PUT vs. POST in RESTShould a RESTful 'PUT' operation return somethingHow to send a PUT/DELETE request in jQuery?Why don't Java's +=, -=, *=, /= compound assignment operators require casting?@RequestParam vs @PathVariableGetting parameters from PUT HttpServletRequest?REST API - PUT vs PATCH with real life examplesMethod With @PathVariable In SpringBoot Returns Empty Response






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








4















I'm using Spring boot 2.1.3-RELEASE. In my RestController I'm trying to set up a PUT method with one PathVariable and a RequestParam (application/x-www-form-urlencoded).
However when I call it the response is a bad request because the required RequestParam is not present.



I tried changing PutMapping to RequestMapping, swapping parameters position and using the syntax @RequestParam(value="param2", required=false) but nothing changes.



Curiously using PostMapping works. Also removing PathVariable works.



Here is the RestController code:



@PutMapping(value="/myurl/param1", consumes=MediaType.APPLICATION_FORM_URLENCODED_VALUE)
public String myMethod( @PathVariable("param1") Integer param1, @RequestParam("param2") String param2);


I call the method in this way:



curl -X PUT 
http://localhost:8080/myurl/42
-H 'Accept: application/json'
-H 'Content-Type: application/x-www-form-urlencoded'
-d 'param2=myparam2value'


The response is:





"timestamp": 1553613278534,
"status": 400,
"error": "Bad Request",
"message": "Required String parameter 'param2' is not present",
"path": "/myurl/42"




I expect that PUT works just like POST, but it seems not to.



Unfortunately I cannot send parameters as QueryParam, so I should maintain the same request call because I am refactoring an existing endpoint that works exactly this way.



Thanks




EDIT



I found this is caused by using an HandlerInterceptorAdapter (via WebMvcConfigurer).
For some reason, around



org.springframework.web.util.ContentCachingRequestWrapper.getParameterValues


org.apache.coyote.Request.parameters has no content and an exception is thrown, so it works only for POST and not for PUT (GET are handled differently).



I appreciate if someone can suggest if this can be reported as a bug considering that removing the interceptor made it work.



Regards










share|improve this question
























  • some.endpoint/api/v1/usersid?selector=foo -- id -> PathParam and foo -> RequestParam. My guess is you're conflating "RequestParam" with "body of HTTP request". If your 'param2' is the body of the request, remove the @RequestParam annotation.

    – Not a JD
    Mar 26 at 15:20











  • Can you try this : curl -X PUT localhost:8080/myurl/42?param2=myparam2value -H 'Accept: application/json' -H 'Content-Type: application/x-www-form-urlencoded'

    – Logan Wlv
    Mar 26 at 15:25











  • The params come into the request body, not in the param.

    – Roman C
    Mar 26 at 15:26











  • Thank you @Logan Wlv. Unfortunately I need to maintain the same call convention because I am refactoring an existing endpoint.

    – Dave
    Mar 26 at 16:06

















4















I'm using Spring boot 2.1.3-RELEASE. In my RestController I'm trying to set up a PUT method with one PathVariable and a RequestParam (application/x-www-form-urlencoded).
However when I call it the response is a bad request because the required RequestParam is not present.



I tried changing PutMapping to RequestMapping, swapping parameters position and using the syntax @RequestParam(value="param2", required=false) but nothing changes.



Curiously using PostMapping works. Also removing PathVariable works.



Here is the RestController code:



@PutMapping(value="/myurl/param1", consumes=MediaType.APPLICATION_FORM_URLENCODED_VALUE)
public String myMethod( @PathVariable("param1") Integer param1, @RequestParam("param2") String param2);


I call the method in this way:



curl -X PUT 
http://localhost:8080/myurl/42
-H 'Accept: application/json'
-H 'Content-Type: application/x-www-form-urlencoded'
-d 'param2=myparam2value'


The response is:





"timestamp": 1553613278534,
"status": 400,
"error": "Bad Request",
"message": "Required String parameter 'param2' is not present",
"path": "/myurl/42"




I expect that PUT works just like POST, but it seems not to.



Unfortunately I cannot send parameters as QueryParam, so I should maintain the same request call because I am refactoring an existing endpoint that works exactly this way.



Thanks




EDIT



I found this is caused by using an HandlerInterceptorAdapter (via WebMvcConfigurer).
For some reason, around



org.springframework.web.util.ContentCachingRequestWrapper.getParameterValues


org.apache.coyote.Request.parameters has no content and an exception is thrown, so it works only for POST and not for PUT (GET are handled differently).



I appreciate if someone can suggest if this can be reported as a bug considering that removing the interceptor made it work.



Regards










share|improve this question
























  • some.endpoint/api/v1/usersid?selector=foo -- id -> PathParam and foo -> RequestParam. My guess is you're conflating "RequestParam" with "body of HTTP request". If your 'param2' is the body of the request, remove the @RequestParam annotation.

    – Not a JD
    Mar 26 at 15:20











  • Can you try this : curl -X PUT localhost:8080/myurl/42?param2=myparam2value -H 'Accept: application/json' -H 'Content-Type: application/x-www-form-urlencoded'

    – Logan Wlv
    Mar 26 at 15:25











  • The params come into the request body, not in the param.

    – Roman C
    Mar 26 at 15:26











  • Thank you @Logan Wlv. Unfortunately I need to maintain the same call convention because I am refactoring an existing endpoint.

    – Dave
    Mar 26 at 16:06













4












4








4








I'm using Spring boot 2.1.3-RELEASE. In my RestController I'm trying to set up a PUT method with one PathVariable and a RequestParam (application/x-www-form-urlencoded).
However when I call it the response is a bad request because the required RequestParam is not present.



I tried changing PutMapping to RequestMapping, swapping parameters position and using the syntax @RequestParam(value="param2", required=false) but nothing changes.



Curiously using PostMapping works. Also removing PathVariable works.



Here is the RestController code:



@PutMapping(value="/myurl/param1", consumes=MediaType.APPLICATION_FORM_URLENCODED_VALUE)
public String myMethod( @PathVariable("param1") Integer param1, @RequestParam("param2") String param2);


I call the method in this way:



curl -X PUT 
http://localhost:8080/myurl/42
-H 'Accept: application/json'
-H 'Content-Type: application/x-www-form-urlencoded'
-d 'param2=myparam2value'


The response is:





"timestamp": 1553613278534,
"status": 400,
"error": "Bad Request",
"message": "Required String parameter 'param2' is not present",
"path": "/myurl/42"




I expect that PUT works just like POST, but it seems not to.



Unfortunately I cannot send parameters as QueryParam, so I should maintain the same request call because I am refactoring an existing endpoint that works exactly this way.



Thanks




EDIT



I found this is caused by using an HandlerInterceptorAdapter (via WebMvcConfigurer).
For some reason, around



org.springframework.web.util.ContentCachingRequestWrapper.getParameterValues


org.apache.coyote.Request.parameters has no content and an exception is thrown, so it works only for POST and not for PUT (GET are handled differently).



I appreciate if someone can suggest if this can be reported as a bug considering that removing the interceptor made it work.



Regards










share|improve this question
















I'm using Spring boot 2.1.3-RELEASE. In my RestController I'm trying to set up a PUT method with one PathVariable and a RequestParam (application/x-www-form-urlencoded).
However when I call it the response is a bad request because the required RequestParam is not present.



I tried changing PutMapping to RequestMapping, swapping parameters position and using the syntax @RequestParam(value="param2", required=false) but nothing changes.



Curiously using PostMapping works. Also removing PathVariable works.



Here is the RestController code:



@PutMapping(value="/myurl/param1", consumes=MediaType.APPLICATION_FORM_URLENCODED_VALUE)
public String myMethod( @PathVariable("param1") Integer param1, @RequestParam("param2") String param2);


I call the method in this way:



curl -X PUT 
http://localhost:8080/myurl/42
-H 'Accept: application/json'
-H 'Content-Type: application/x-www-form-urlencoded'
-d 'param2=myparam2value'


The response is:





"timestamp": 1553613278534,
"status": 400,
"error": "Bad Request",
"message": "Required String parameter 'param2' is not present",
"path": "/myurl/42"




I expect that PUT works just like POST, but it seems not to.



Unfortunately I cannot send parameters as QueryParam, so I should maintain the same request call because I am refactoring an existing endpoint that works exactly this way.



Thanks




EDIT



I found this is caused by using an HandlerInterceptorAdapter (via WebMvcConfigurer).
For some reason, around



org.springframework.web.util.ContentCachingRequestWrapper.getParameterValues


org.apache.coyote.Request.parameters has no content and an exception is thrown, so it works only for POST and not for PUT (GET are handled differently).



I appreciate if someone can suggest if this can be reported as a bug considering that removing the interceptor made it work.



Regards







java rest spring-boot put






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Mar 28 at 9:58







Dave

















asked Mar 26 at 15:13









DaveDave

212 bronze badges




212 bronze badges












  • some.endpoint/api/v1/usersid?selector=foo -- id -> PathParam and foo -> RequestParam. My guess is you're conflating "RequestParam" with "body of HTTP request". If your 'param2' is the body of the request, remove the @RequestParam annotation.

    – Not a JD
    Mar 26 at 15:20











  • Can you try this : curl -X PUT localhost:8080/myurl/42?param2=myparam2value -H 'Accept: application/json' -H 'Content-Type: application/x-www-form-urlencoded'

    – Logan Wlv
    Mar 26 at 15:25











  • The params come into the request body, not in the param.

    – Roman C
    Mar 26 at 15:26











  • Thank you @Logan Wlv. Unfortunately I need to maintain the same call convention because I am refactoring an existing endpoint.

    – Dave
    Mar 26 at 16:06

















  • some.endpoint/api/v1/usersid?selector=foo -- id -> PathParam and foo -> RequestParam. My guess is you're conflating "RequestParam" with "body of HTTP request". If your 'param2' is the body of the request, remove the @RequestParam annotation.

    – Not a JD
    Mar 26 at 15:20











  • Can you try this : curl -X PUT localhost:8080/myurl/42?param2=myparam2value -H 'Accept: application/json' -H 'Content-Type: application/x-www-form-urlencoded'

    – Logan Wlv
    Mar 26 at 15:25











  • The params come into the request body, not in the param.

    – Roman C
    Mar 26 at 15:26











  • Thank you @Logan Wlv. Unfortunately I need to maintain the same call convention because I am refactoring an existing endpoint.

    – Dave
    Mar 26 at 16:06
















some.endpoint/api/v1/usersid?selector=foo -- id -> PathParam and foo -> RequestParam. My guess is you're conflating "RequestParam" with "body of HTTP request". If your 'param2' is the body of the request, remove the @RequestParam annotation.

– Not a JD
Mar 26 at 15:20





some.endpoint/api/v1/usersid?selector=foo -- id -> PathParam and foo -> RequestParam. My guess is you're conflating "RequestParam" with "body of HTTP request". If your 'param2' is the body of the request, remove the @RequestParam annotation.

– Not a JD
Mar 26 at 15:20













Can you try this : curl -X PUT localhost:8080/myurl/42?param2=myparam2value -H 'Accept: application/json' -H 'Content-Type: application/x-www-form-urlencoded'

– Logan Wlv
Mar 26 at 15:25





Can you try this : curl -X PUT localhost:8080/myurl/42?param2=myparam2value -H 'Accept: application/json' -H 'Content-Type: application/x-www-form-urlencoded'

– Logan Wlv
Mar 26 at 15:25













The params come into the request body, not in the param.

– Roman C
Mar 26 at 15:26





The params come into the request body, not in the param.

– Roman C
Mar 26 at 15:26













Thank you @Logan Wlv. Unfortunately I need to maintain the same call convention because I am refactoring an existing endpoint.

– Dave
Mar 26 at 16:06





Thank you @Logan Wlv. Unfortunately I need to maintain the same call convention because I am refactoring an existing endpoint.

– Dave
Mar 26 at 16:06












1 Answer
1






active

oldest

votes


















1














Use -G along with --data-urlencode:



curl -G -X PUT 
http://localhost:8080/myurl/42
-H 'Accept: application/json'
-H 'Content-Type: application/x-www-form-urlencoded'
--data-urlencode 'param2=myparam2value'


From the documentation:





-G, --get



When used, this option will make all data specified with -d, --data, --data-binary or --data-urlencode to be used in an HTTP GET request instead of the POST request that otherwise would be used. The data will be appended to the URL with a ? separator. [...]







--data-urlencode <data>



(HTTP) This posts data, similar to the other -d, --data options with the exception that this performs URL-encoding. [...]







share|improve this answer

























  • can you explain why his example is working with @PostMapping?

    – Logan Wlv
    Mar 26 at 15:27











  • You need just to read the documentation for -G option: When used, this option will make all data specified with -d, --data, --data-binary or --data-urlencode to be used in an HTTP GET request instead of the POST request that otherwise would be used. The data will be appended to the URL with a '?' separator.

    – nullptr
    Mar 26 at 15:37











  • Thank you for your reply. Unfortunately I am refactoring a legacy endpoint so I cannot change the call. It appears to be a Spring boot bug to me, in my humble opinion.

    – Dave
    Mar 26 at 15:59











Your Answer






StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");

StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55360535%2fput-pathvariable-and-requestparam-dont-work-together%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









1














Use -G along with --data-urlencode:



curl -G -X PUT 
http://localhost:8080/myurl/42
-H 'Accept: application/json'
-H 'Content-Type: application/x-www-form-urlencoded'
--data-urlencode 'param2=myparam2value'


From the documentation:





-G, --get



When used, this option will make all data specified with -d, --data, --data-binary or --data-urlencode to be used in an HTTP GET request instead of the POST request that otherwise would be used. The data will be appended to the URL with a ? separator. [...]







--data-urlencode <data>



(HTTP) This posts data, similar to the other -d, --data options with the exception that this performs URL-encoding. [...]







share|improve this answer

























  • can you explain why his example is working with @PostMapping?

    – Logan Wlv
    Mar 26 at 15:27











  • You need just to read the documentation for -G option: When used, this option will make all data specified with -d, --data, --data-binary or --data-urlencode to be used in an HTTP GET request instead of the POST request that otherwise would be used. The data will be appended to the URL with a '?' separator.

    – nullptr
    Mar 26 at 15:37











  • Thank you for your reply. Unfortunately I am refactoring a legacy endpoint so I cannot change the call. It appears to be a Spring boot bug to me, in my humble opinion.

    – Dave
    Mar 26 at 15:59
















1














Use -G along with --data-urlencode:



curl -G -X PUT 
http://localhost:8080/myurl/42
-H 'Accept: application/json'
-H 'Content-Type: application/x-www-form-urlencoded'
--data-urlencode 'param2=myparam2value'


From the documentation:





-G, --get



When used, this option will make all data specified with -d, --data, --data-binary or --data-urlencode to be used in an HTTP GET request instead of the POST request that otherwise would be used. The data will be appended to the URL with a ? separator. [...]







--data-urlencode <data>



(HTTP) This posts data, similar to the other -d, --data options with the exception that this performs URL-encoding. [...]







share|improve this answer

























  • can you explain why his example is working with @PostMapping?

    – Logan Wlv
    Mar 26 at 15:27











  • You need just to read the documentation for -G option: When used, this option will make all data specified with -d, --data, --data-binary or --data-urlencode to be used in an HTTP GET request instead of the POST request that otherwise would be used. The data will be appended to the URL with a '?' separator.

    – nullptr
    Mar 26 at 15:37











  • Thank you for your reply. Unfortunately I am refactoring a legacy endpoint so I cannot change the call. It appears to be a Spring boot bug to me, in my humble opinion.

    – Dave
    Mar 26 at 15:59














1












1








1







Use -G along with --data-urlencode:



curl -G -X PUT 
http://localhost:8080/myurl/42
-H 'Accept: application/json'
-H 'Content-Type: application/x-www-form-urlencoded'
--data-urlencode 'param2=myparam2value'


From the documentation:





-G, --get



When used, this option will make all data specified with -d, --data, --data-binary or --data-urlencode to be used in an HTTP GET request instead of the POST request that otherwise would be used. The data will be appended to the URL with a ? separator. [...]







--data-urlencode <data>



(HTTP) This posts data, similar to the other -d, --data options with the exception that this performs URL-encoding. [...]







share|improve this answer















Use -G along with --data-urlencode:



curl -G -X PUT 
http://localhost:8080/myurl/42
-H 'Accept: application/json'
-H 'Content-Type: application/x-www-form-urlencoded'
--data-urlencode 'param2=myparam2value'


From the documentation:





-G, --get



When used, this option will make all data specified with -d, --data, --data-binary or --data-urlencode to be used in an HTTP GET request instead of the POST request that otherwise would be used. The data will be appended to the URL with a ? separator. [...]







--data-urlencode <data>



(HTTP) This posts data, similar to the other -d, --data options with the exception that this performs URL-encoding. [...]








share|improve this answer














share|improve this answer



share|improve this answer








edited Mar 26 at 16:23

























answered Mar 26 at 15:26









cassiomolincassiomolin

67.1k20 gold badges138 silver badges203 bronze badges




67.1k20 gold badges138 silver badges203 bronze badges












  • can you explain why his example is working with @PostMapping?

    – Logan Wlv
    Mar 26 at 15:27











  • You need just to read the documentation for -G option: When used, this option will make all data specified with -d, --data, --data-binary or --data-urlencode to be used in an HTTP GET request instead of the POST request that otherwise would be used. The data will be appended to the URL with a '?' separator.

    – nullptr
    Mar 26 at 15:37











  • Thank you for your reply. Unfortunately I am refactoring a legacy endpoint so I cannot change the call. It appears to be a Spring boot bug to me, in my humble opinion.

    – Dave
    Mar 26 at 15:59


















  • can you explain why his example is working with @PostMapping?

    – Logan Wlv
    Mar 26 at 15:27











  • You need just to read the documentation for -G option: When used, this option will make all data specified with -d, --data, --data-binary or --data-urlencode to be used in an HTTP GET request instead of the POST request that otherwise would be used. The data will be appended to the URL with a '?' separator.

    – nullptr
    Mar 26 at 15:37











  • Thank you for your reply. Unfortunately I am refactoring a legacy endpoint so I cannot change the call. It appears to be a Spring boot bug to me, in my humble opinion.

    – Dave
    Mar 26 at 15:59

















can you explain why his example is working with @PostMapping?

– Logan Wlv
Mar 26 at 15:27





can you explain why his example is working with @PostMapping?

– Logan Wlv
Mar 26 at 15:27













You need just to read the documentation for -G option: When used, this option will make all data specified with -d, --data, --data-binary or --data-urlencode to be used in an HTTP GET request instead of the POST request that otherwise would be used. The data will be appended to the URL with a '?' separator.

– nullptr
Mar 26 at 15:37





You need just to read the documentation for -G option: When used, this option will make all data specified with -d, --data, --data-binary or --data-urlencode to be used in an HTTP GET request instead of the POST request that otherwise would be used. The data will be appended to the URL with a '?' separator.

– nullptr
Mar 26 at 15:37













Thank you for your reply. Unfortunately I am refactoring a legacy endpoint so I cannot change the call. It appears to be a Spring boot bug to me, in my humble opinion.

– Dave
Mar 26 at 15:59






Thank you for your reply. Unfortunately I am refactoring a legacy endpoint so I cannot change the call. It appears to be a Spring boot bug to me, in my humble opinion.

– Dave
Mar 26 at 15:59









Got a question that you can’t ask on public Stack Overflow? Learn more about sharing private information with Stack Overflow for Teams.







Got a question that you can’t ask on public Stack Overflow? Learn more about sharing private information with Stack Overflow for Teams.



















draft saved

draft discarded
















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55360535%2fput-pathvariable-and-requestparam-dont-work-together%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Kamusi Yaliyomo Aina za kamusi | Muundo wa kamusi | Faida za kamusi | Dhima ya picha katika kamusi | Marejeo | Tazama pia | Viungo vya nje | UrambazajiKuhusu kamusiGo-SwahiliWiki-KamusiKamusi ya Kiswahili na Kiingerezakuihariri na kuongeza habari

Swift 4 - func physicsWorld not invoked on collision? The Next CEO of Stack OverflowHow to call Objective-C code from Swift#ifdef replacement in the Swift language@selector() in Swift?#pragma mark in Swift?Swift for loop: for index, element in array?dispatch_after - GCD in Swift?Swift Beta performance: sorting arraysSplit a String into an array in Swift?The use of Swift 3 @objc inference in Swift 4 mode is deprecated?How to optimize UITableViewCell, because my UITableView lags

Access current req object everywhere in Node.js ExpressWhy are global variables considered bad practice? (node.js)Using req & res across functionsHow do I get the path to the current script with Node.js?What is Node.js' Connect, Express and “middleware”?Node.js w/ express error handling in callbackHow to access the GET parameters after “?” in Express?Modify Node.js req object parametersAccess “app” variable inside of ExpressJS/ConnectJS middleware?Node.js Express app - request objectAngular Http Module considered middleware?Session variables in ExpressJSAdd properties to the req object in expressjs with Typescript