November 23, 2020

SuiteScript Design – Generating RESTful URLs

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 params argument.

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.

HTH

-EG

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}

Related posts

February 1, 2021

Around a decade ago now, I was spending most of my time with members of the United States Marine Corps. As an organization, the Corps invests significant time and energy maintaining a reputation as ...

Read More