On to this week’s design pattern. It’s technically a single utility function, but it plays a major role in my integration design pattern, which we’ll continue exploring over the next few weeks.
Most modern systems that expose an HTTP API employ a RESTful interface, and their API URLs follow a reasonably consistent naming pattern.
Consistent patterns are my favorite thing! Because they allow us to write code that takes advantage of that consistency.
Here you can find the function I use in my integration systems that generates a typical URL path for any resource or child resource in a RESTful API.
It’s written in 2.1 and takes advantage of modern syntax like destructuring and default parameters. All of that could quickly be adapted to a 2.0 environment, though.
I see a lot of people struggle with or write “clever” (obscure) code for URL generation, but URLs – especially those for a RESTful service – follow very simple patterns. The hardest part is usually generating the query string, and
N/url.format() does that for us with its
All we need to do – and so all this function really does – is create an Array of all the possible path values we might have, filter out any empty values, then join the rest with a
You can see the details and example usage and output in the JSDoc header for the function.