Salesforce Commerce Cloud OCAPI Proxy Router
npm install ocapi-proxy
Required:
Node.js
Salesforce Commerce Cloud Sandbox - Configured for OCAPI
Optional:
Postman or another rest API tool.
ngrok - If you need to get a public url to your localhost
`
Installing
`
npm install ocapi-proxy
`
Running
From the command line:
`
npm start or node ocapi-proxy.js
`
Example:
`
npm start ocapi-proxy.js
`
!Postman Example
You will need a config.json (one will be generated on first launch)
To edit the port, domain, etc.. modify the config.json file.
server: your Salesforce Commerce Cloud server (currently all calls are https)
site_id: SFCC Site ID
version: SFCC OCAPI Version
port_ui: Port for browser testing requests.
port: Port that proxy listens for requests.
Example:
`
{
"server": "yoursandbox.demandware.net",
"site_id": "SiteGenesis",
"version": "v23_2",
"client_id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"port": 8080,
"port_ui": 80,
"UA": "UA-XXXX-XXXX", //Optional: Universal Analytics ID
"rate_limit": "", //Optional: 15 minutes default
"rate_max": "", //Optional: number of calls that can be made
"windowMs": limit, // 15 minutes or config file entry
"max": max, // Limit each IP to 100 requests per window (here, per 15 minutes)
}
`
OCAPI Commands
You can send OCAPI commands to your local proxy.
Specify the host to make the call.
Send the endpoint as the callurl header attribute.
All other attributes can be sent similar to a direct OCAPI call.
This ensures that the Proxy communicates with OCAPI as middleware.
Example:
!Postman Example
Deployment/Development
This is currently a work in progress. Please report any issues you find.
Latest: Fixes to logging added dates to log files.
Updated contact info for Github and Twitter.
OCAPI Output Modifications
Currently Authorization and ETag headers are returned into the body from the output proxy rather than in the header. These are not needed in 19.X+
Universal Analytics
The Proxy will communicate with Google Universal Analytics if a "UA" attribute is found in the config file. You may leave this attribute blank or remove it from the config. Currently all UA requests are send as a event tag with the url of the Commerce Cloud Instance.
Proxy Testing UI
!Postman Example
NEW Proxy UI for testing from a web browser interface. Config attribute "port_ui" added to config.json
Files / Links
* Postman Collection
* Example: config.json
File Structure
`
Within the download you'll find the following directories and files:
|-- Root
|-- .gitignore
|-- .npmignore
|-- build.js
|-- config.json
|-- ecosystem.config.js
|-- libProxy.js
|-- LICENSE.md
|-- ocapi-proxy.js
|-- package-lock.json
|-- package.json
|-- README.md
|-- sample-config.json
|-- SECURITY.md
|-- .vscode
| |-- launch.json
|-- examples
| |-- diagram-middleware.png
| |-- OCAPI-Proxy-Tester.png
| |-- OCAPI-Proxy.postman_collection.json
| |-- pm2-example.png
| |-- postman-example.png
|-- html
| |-- index.html
|-- logs
``