Skip to content

Postman setup

Deepak Ramachandran edited this page Mar 19, 2022 · 1 revision

Postman Pre-Request Script (Add it in the collection)

var crypto = require('crypto-js');

const uri = pm.request.url.getPath();
const method = pm.request.method.toUpperCase();
const nonce = (new Date).getTime();
var signingString = "uri=" + uri + "&method=" + method + "&nonce=" + nonce + pm.request.url.getQueryString();
if (method == 'POST') {
    signingString += pm.request.body.toString();
}
console.log("signingString is: " + signingString);
var signature = crypto.enc.Base64.stringify(crypto.HmacSHA256(signingString, "testing123"));
console.log(signature.toString());
pm.request.headers.add({"key": "X-AUTH-SIGNATURE", "value": signature.toString()});
pm.request.headers.add({"key": "X-AUTH-NONCE", "value": nonce});

Postman Collection

{
	"info": {
		"_postman_id": "9007727d-bbcd-4a8c-beca-011aa10b0a32",
		"name": "Jamq Replica",
		"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
	},
	"item": [
		{
			"name": "Create Queue",
			"event": [
				{
					"listen": "prerequest",
					"script": {
						"exec": [
							""
						],
						"type": "text/javascript"
					}
				}
			],
			"request": {
				"method": "POST",
				"header": [],
				"url": {
					"raw": "localhost:5000/api/v1/queues/test-queue-1?queue_type=FIFO",
					"host": [
						"localhost"
					],
					"port": "5000",
					"path": [
						"api",
						"v1",
						"queues",
						"test-queue-1"
					],
					"query": [
						{
							"key": "queue_type",
							"value": "FIFO"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Send Message",
			"request": {
				"method": "PUT",
				"header": [],
				"body": {
					"mode": "raw",
					"raw": "{\n    \"message\": \"hello worsdxasdasdld!\",\n    \"timestamp\": 1647708762\n}",
					"options": {
						"raw": {
							"language": "json"
						}
					}
				},
				"url": {
					"raw": "localhost:5000/api/v1/queues/test-queue-1?queue_type=FIFO",
					"host": [
						"localhost"
					],
					"port": "5000",
					"path": [
						"api",
						"v1",
						"queues",
						"test-queue-1"
					],
					"query": [
						{
							"key": "queue_type",
							"value": "FIFO"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Consume Message",
			"event": [
				{
					"listen": "prerequest",
					"script": {
						"exec": [
							""
						],
						"type": "text/javascript"
					}
				}
			],
			"request": {
				"method": "GET",
				"header": [],
				"url": {
					"raw": "localhost:5000/api/v1/queues/test-queue-1?queue_type=FIFO",
					"host": [
						"localhost"
					],
					"port": "5000",
					"path": [
						"api",
						"v1",
						"queues",
						"test-queue-1"
					],
					"query": [
						{
							"key": "queue_type",
							"value": "FIFO"
						}
					]
				}
			},
			"response": []
		},
		{
			"name": "Purge Queue (Delete messages)",
			"event": [
				{
					"listen": "prerequest",
					"script": {
						"exec": [
							""
						],
						"type": "text/javascript"
					}
				}
			],
			"request": {
				"method": "PATCH",
				"header": [],
				"url": {
					"raw": "localhost:5000/api/v1/queues/test-queue-1?queue_type=FIFO",
					"host": [
						"localhost"
					],
					"port": "5000",
					"path": [
						"api",
						"v1",
						"queues",
						"test-queue-1"
					],
					"query": [
						{
							"key": "queue_type",
							"value": "FIFO"
						}
					]
				}
			},
			"response": []
		}
	],
	"event": [
		{
			"listen": "prerequest",
			"script": {
				"type": "text/javascript",
				"exec": [
					"var crypto = require('crypto-js');",
					"",
					"const uri = pm.request.url.getPath();",
					"const method = pm.request.method.toUpperCase();",
					"const nonce = (new Date).getTime();",
					"var signingString = \"uri=\" + uri + \"&method=\" + method + \"&nonce=\" + nonce + pm.request.url.getQueryString();",
					"if (method == 'POST') {",
					"    signingString += pm.request.body.toString();",
					"}",
					"console.log(\"signingString is: \" + signingString);",
					"var signature = crypto.enc.Base64.stringify(crypto.HmacSHA256(signingString, \"testing123\"));",
					"console.log(signature.toString());",
					"pm.request.headers.add({\"key\": \"X-AUTH-SIGNATURE\", \"value\": signature.toString()});",
					"pm.request.headers.add({\"key\": \"X-AUTH-NONCE\", \"value\": nonce});"
				]
			}
		},
		{
			"listen": "test",
			"script": {
				"type": "text/javascript",
				"exec": [
					""
				]
			}
		}
	]
}
Clone this wiki locally