rest-api-url-builder
This plugin is used for building URLs for REST APIs (server-side compatible). Easy to use. Supports named and query parameters as well as the base url binding.
Size: 6.55 KiB minified, 3.05 KiB gzipped
Installation
npm install rest-api-url-builder# or yarn add rest-api-url-builder
Syntax
;
Parameters
Routes
The routes
object may contain a routeName: url
(string: string) or routeName: RouteConfig
(string: object) pairs.
RouteConfig is an object with following structure:
Routes
The options
object may contain one or more available options
Usage
Routes with absolute URLs
; const routes = 'homepage': 'https://www.example.com/homepage' 'about-us': 'path': 'https://www.example.com/about-us' ; const urlBuilder = routes;const route = urlBuilder; // https://www.example.com/homepage
Routes with relative URLs & base URL
; const options = 'baseURL': 'https://www.example.com'; const routes = 'homepage': '/homepage' 'about-us': 'path': '/about-us' ; const urlBuilder = routes options;const route = urlBuilder; // https://www.example.com/homepage
Rewriting baseURL for specific URLs
; const options = 'baseURL': 'https://www.example.com'; const routes = 'homepage': '/homepage' 'contact:': '/contact' 'about-us': 'path': '/about-us' 'baseURL': 'https://www.other.com' ; const urlBuilder = routes options;const homepageURL = urlBuilder; // https://www.example.com/homepageconst contactURL = urlBuilder; // https://www.example.com/contactconst aboutUsURL = urlBuilder; // https://www.other.com/about-us
Binding named parameters
; const routes = 'product': 'https://www.example.com/product/:id'; const urlBuilder = routes;const productURL = urlBuilder ;console; // https://www.example.com/product/1010
Binding query parameters
; const routes = 'search': 'https://www.example.com/search'; const urlBuilder = routes;const searchURL = urlBuilder ;console; // https://www.example.com/search?sort=price
Binding array query parameters
; const routes = 'search': 'https://www.example.com/search'; const urlBuilder = routes;const searchURL = urlBuilder ;console; // https://www.example.com/search?filters[]=value1&filters[]=value2
Chaining parameters binding
; const routes = 'search': 'https://www.example.com/search/:category'; const urlBuilder = routes;const searchURL = urlBuilder ;console; // https://www.example.com/search/cars?filters[]=value1&filters[]=value2&sort=price
Available UrlBuilder options
/** * Base url that is going to be prepended to each url * parts: protocol (required) + host (required) + port (optional) * default: '' */ baseURL: 'https://www.example.com'