forked from postmanlabs/node-doc-kube
-
Notifications
You must be signed in to change notification settings - Fork 0
/
catURL.postman_collection.json
416 lines (416 loc) · 55.2 KB
/
catURL.postman_collection.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
{
"info": {
"_postman_id": "9f5aa83b-666d-41ef-9b91-6c3ec25ef789",
"name": "catURL",
"description": "We'll start with a simple Node app that functions like a URL shortener. In our case, we'll transform one URL into a different one using cat verbs, cat adjectives, and cat emojis 🐱 - and when you input your custom URL into a browser, you'll be redirected back to the original website.\n\n![[catURL website](https://i.imgur.com/yypLUxZ.jpg)](https://i.imgur.com/yypLUxZ.jpg)\n\n### Get started\n\nThis collection and environment was originally used as an example in [Deploying a scalable web application with Docker and Kubernetes](link) from the [Postman Engineering blog](https://medium.com/postman-engineering).\n\nIf you want to follow along, go ahead and fork [this example](link to github) and follow the README steps to spin up a local version of these APIs. \n\nThe beauty of using containers is that even if I'm developing this example on a machine with my Operating System and a different version of Node, you can rely on my container image to prescribe the exact specifications you'll need to run the same application seamlessly on your machine, or in the cloud, or wherever you choose to deploy.\n\n### Test the redirect\n\nSince we're working with redirects, let's set up Postman so we can properly test these requests. By default, Postman will follow a redirect -- unless we tell it not to. If we update our general Postman settings to disallow redirects, we can inspect our server's response headers before the redirection.\n\n* To run the `redirect test` request, make sure you have `Automatically follow redirects` toggled OFF under the general [Postman app settings](https://learning.getpostman.com/docs/postman/launching_postman/settings#general-settings). \n* To run the collection in the Postman app via [collection runner](https://learning.getpostman.com/docs/postman/collection_runs/starting_a_collection_run), make sure you have the same `Automatically follow redirects` toggled OFF.\n* To run the collection using Postman's command line runner [Newman](https://github.com/postmanlabs/newman), make sure you include the flag `--ignore-redirects ` with your command.\n* To run the collection from the Postman cloud using a [monitor](https://learning.getpostman.com/docs/postman/monitors/setting_up_monitor), make sure you check the box that says `Don't follow redirects`.\n\n",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
},
"item": [
{
"name": "urlize",
"event": [
{
"listen": "test",
"script": {
"id": "7594b33d-1078-46ff-b5d9-9ff0fd874188",
"exec": [
"pm.test(\"Status code is 200\", function () {",
" pm.response.to.have.status(200);",
"});",
"",
"pm.test(\"Body contains catpath\", function () {",
" pm.expect(pm.response.json()).to.have.ownProperty(\"catpath\");",
"});",
"",
"// save data as environment variables to verify the next request redirects as expected",
"pm.environment.set(\"originalUrl\", request.data[\"originalUrl\"]);",
"pm.environment.set(\"path\", pm.response.json().catpath);",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"name": "Content-Type",
"value": "application/x-www-form-urlencoded",
"type": "text"
}
],
"body": {
"mode": "urlencoded",
"urlencoded": [
{
"key": "originalUrl",
"value": "https://www.getpostman.com",
"type": "text"
}
]
},
"url": {
"raw": "{{url}}/encode",
"host": [
"{{url}}"
],
"path": [
"encode"
]
},
"description": "This endpoint will encode your original url into a new catURL, returning the new path.\n\nFor example, try submitting `https://www.getpostman.com` as the `originalUrl` in the request body. The response is a json object containing a `catpath` composed of cat words and emojis like `\"stalk.sleepy-bombay-scratch.whisker\"`. You can also review the saved example.\n\nNow change the value of `originalUrl` to a different URL, hit send, and inspect the response."
},
"response": [
{
"name": "Successful response",
"originalRequest": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"name": "Content-Type",
"value": "application/x-www-form-urlencoded",
"type": "text"
}
],
"body": {
"mode": "urlencoded",
"urlencoded": [
{
"key": "originalUrl",
"value": "https://postman.aha.io/products/DEVSOL/feature_cards",
"type": "text"
}
]
},
"url": {
"raw": "{{url}}/encode",
"host": [
"{{url}}"
],
"path": [
"encode"
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "X-Powered-By",
"value": "Express"
},
{
"key": "Access-Control-Allow-Origin",
"value": "*"
},
{
"key": "Access-Control-Allow-Headers",
"value": "Origin, X-Requested-With, Content-Type, Accept"
},
{
"key": "Access-Control-Allow-Methods",
"value": "GET, PUT, POST, DELETE, OPTIONS"
},
{
"key": "Content-Type",
"value": "application/json; charset=utf-8"
},
{
"key": "Content-Length",
"value": "56"
},
{
"key": "ETag",
"value": "W/\"38-6j2mGVZYscuM2imZ/fY6K/PoXIs\""
},
{
"key": "Date",
"value": "Sun, 24 Feb 2019 22:28:52 GMT"
},
{
"key": "Connection",
"value": "keep-alive"
}
],
"cookie": [],
"body": "{\n \"error\": null,\n \"catpath\": \"meow-saunter.paw.scratch.yawn\"\n}"
}
]
},
{
"name": "redirect test",
"event": [
{
"listen": "test",
"script": {
"id": "c6a8f33f-ed76-46c1-8e15-6295e39ecd4b",
"exec": [
"// under your Postman Settings, make sure you toggle OFF `Automatically follow redirects` so you can examine the location before the redirect",
"",
"const target = responseHeaders.location || responseHeaders.Location;",
"",
"pm.test(\"Redirect to the original URL\", () => {",
" const original = pm.environment.get(\"originalUrl\");",
" pm.expect(target).to.equal(original);",
"});",
"",
"// terminate the collection run if running for testing purposes",
"postman.setNextRequest(null);",
"// pm.environment.unset(\"originalUrl\");",
"// pm.environment.unset(\"path\");",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{url}}/{{path}}",
"host": [
"{{url}}"
],
"path": [
"{{path}}"
]
},
"description": "This endpoint will begin redirecting your cat URL to your originally submitted URL. We will stop it before following the redirect to verify the redirection is going to the originally submitted URL.\n\nFor example, update the `path` environment variable with the cat path you received in the previous request. You will be redirected to your originally submitted URL.\n\n*Note*: Make sure you have Postman set up properly to [not follow the redirect](#test-the-redirect). Then, when you send this request, look under the Headers tab of the response viewer down at the bottom. Find the Location header to inspect the target for the redirect."
},
"response": [
{
"name": "Successfully paused redirection",
"originalRequest": {
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{url}}/{{path}}",
"host": [
"{{url}}"
],
"path": [
"{{path}}"
]
}
},
"status": "Found",
"code": 302,
"_postman_previewlanguage": "plain",
"header": [
{
"key": "X-Powered-By",
"value": "Express"
},
{
"key": "Access-Control-Allow-Origin",
"value": "*"
},
{
"key": "Access-Control-Allow-Headers",
"value": "Origin, X-Requested-With, Content-Type, Accept"
},
{
"key": "Access-Control-Allow-Methods",
"value": "GET, PUT, POST, DELETE, OPTIONS"
},
{
"key": "Content-Type",
"value": "text/plain; charset=utf-8"
},
{
"key": "Location",
"value": "https://www.getpostman.com"
},
{
"key": "Vary",
"value": "Accept"
},
{
"key": "Content-Length",
"value": "48"
},
{
"key": "Date",
"value": "Mon, 25 Feb 2019 01:36:39 GMT"
},
{
"key": "Connection",
"value": "keep-alive"
}
],
"cookie": [],
"body": "Found. Redirecting to https://www.getpostman.com"
}
]
},
{
"name": "redirect allow",
"event": [
{
"listen": "test",
"script": {
"id": "d3e531c4-a052-4b67-9d5d-f7682cd5b7d0",
"exec": [
"// under your Postman Settings, make sure you toggle ON `Automatically follow redirects` so you allow the redirect",
"",
"pm.test(\"Status code is 200\", function () {",
" pm.response.to.have.status(200);",
"});"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{url}}/{{path}}",
"host": [
"{{url}}"
],
"path": [
"{{path}}"
]
},
"description": "This endpoint will redirect your cat URL to your originally submitted URL.\n\n*Note*: To run this request, make sure you have `Automatically follow redirects` toggled ON under your general Postman settings.\n\nFor example, update the `path` environment variable with the cat path you received in the previous request. You will be redirected to your originally submitted URL, and can review the webpage in the response body.\n"
},
"response": [
{
"name": "Successfully allow redirect",
"originalRequest": {
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{url}}/{{path}}",
"host": [
"{{url}}"
],
"path": [
"{{path}}"
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "html",
"header": [
{
"key": "Content-Type",
"value": "text/html"
},
{
"key": "Transfer-Encoding",
"value": "chunked"
},
{
"key": "Connection",
"value": "keep-alive"
},
{
"key": "Date",
"value": "Wed, 20 Feb 2019 23:40:14 GMT"
},
{
"key": "Last-Modified",
"value": "Wed, 20 Feb 2019 23:40:08 GMT"
},
{
"key": "Cache-Control",
"value": "max-age=1209600"
},
{
"key": "Server",
"value": "AmazonS3"
},
{
"key": "Strict-Transport-Security",
"value": "max-age=300; includeSubDomains"
},
{
"key": "X-XSS-Protection",
"value": "1; mode=block"
},
{
"key": "X-Content-Type-Options",
"value": "nosniff"
},
{
"key": "X-Frame-Options",
"value": "DENY"
},
{
"key": "Content-Encoding",
"value": "gzip"
},
{
"key": "Vary",
"value": "Accept-Encoding"
},
{
"key": "Age",
"value": "352658"
},
{
"key": "X-Cache",
"value": "Hit from cloudfront"
},
{
"key": "Via",
"value": "1.1 0576b942ae9f4fc9c0b62b0736e9bfd6.cloudfront.net (CloudFront)"
},
{
"key": "X-Amz-Cf-Id",
"value": "Gx73nzzbe2cffFOMNQFqFq2h8eTZq-DwAa4uDf55RigzR_u3RFBt3w=="
}
],
"cookie": [],
"body": "<!DOCTYPE html>\n<html lang=\"en\">\n <head>\n <link href='//fonts.googleapis.com/css?family=Open+Sans:300,400,600,700' rel='stylesheet' type='text/css'>\n <link href=\"https://fonts.googleapis.com/css?family=Roboto:400,500,700\" rel=\"stylesheet\">\n <meta charset=\"utf-8\">\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n <meta name=\"viewport\" content=\"initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width\">\n <title>Postman | API Development Environment</title>\n <link rel=\"shortcut icon\" href=\"/favicon.ico\">\n <!-- For Chrome for Android: -->\n <link rel=\"icon\" sizes=\"192x192\" href=\"/img/touch-icons/touch-icon-192x192.png\">\n <!-- For iPhone 6 Plus with @3× display: -->\n <link rel=\"apple-touch-icon-precomposed\" sizes=\"180x180\" href=\"/img/touch-icons/apple-touch-icon-180x180-precomposed.png\">\n <!-- For iPad with @2× display running iOS ≥ 7: -->\n <link rel=\"apple-touch-icon-precomposed\" sizes=\"152x152\" href=\"/img/touch-icons/apple-touch-icon-152x152-precomposed.png\">\n <!-- For iPad with @2× display running iOS ≤ 6: -->\n <link rel=\"apple-touch-icon-precomposed\" sizes=\"144x144\" href=\"/img/touch-icons/apple-touch-icon-144x144-precomposed.png\">\n <!-- For iPhone with @2× display running iOS ≥ 7: -->\n <link rel=\"apple-touch-icon-precomposed\" sizes=\"120x120\" href=\"/img/touch-icons/apple-touch-icon-120x120-precomposed.png\">\n <!-- For iPhone with @2× display running iOS ≤ 6: -->\n <link rel=\"apple-touch-icon-precomposed\" sizes=\"114x114\" href=\"/img/touch-icons/apple-touch-icon-114x114-precomposed.png\">\n <!-- For the iPad mini and the first- and second-generation iPad (@1× display) on iOS ≥ 7: -->\n <link rel=\"apple-touch-icon-precomposed\" sizes=\"76x76\" href=\"/img/touch-icons/apple-touch-icon-76x76-precomposed.png\">\n <!-- For the iPad mini and the first- and second-generation iPad (@1× display) on iOS ≤ 6: -->\n <link rel=\"apple-touch-icon-precomposed\" sizes=\"72x72\" href=\"/img/touch-icons/apple-touch-icon-72x72-precomposed.png\">\n <!-- For non-Retina iPhone, iPod Touch, and Android 2.1+ devices: -->\n <link rel=\"apple-touch-icon-precomposed\" href=\"/img/touch-icons/apple-touch-icon-precomposed.png\">\n <!-- 57×57px -->\n <meta name=\"description\" content=\"Postman is the only complete API development environment, for API developers, used by more than 5 million developers and 100,000 companies worldwide. Postman makes working with APIs faster and easier by supporting developers at every stage of their workflow, and is available for Mac OS X, Windows, and Linux users.\">\n <!-- URL unfurling metadata - Facebook Open Graph format -->\n <meta property=\"og:url\" content=\"https://www.getpostman.com\">\n <meta property=\"og:title\" content=\"Postman\">\n <meta property=\"og:description\" content=\"Postman is the only complete API development environment, for API developers, used by more than 5 million developers and 100,000 companies worldwide. Postman makes working with APIs faster and easier by supporting developers at every stage of their workflow, and is available for Mac OS X, Windows, and Linux users.\">\n <meta property=\"og:site_name\" content=\"Postman\">\n <meta property=\"og:image\" content=\"https://www.getpostman.com/img/v2/logo-glyph.png\">\n <meta property=\"og:type\" content=\"website\">\n <!-- URL unfurling metadata - Twitter card tags -->\n <meta name=\"twitter:title\" value=\"Postman\">\n <meta name=\"twitter:description\" value=\"Postman is the only complete API development environment, for API developers, used by more than 5 million developers and 100,000 companies worldwide. Postman makes working with APIs faster and easier by supporting developers at every stage of their workflow, and is available for Mac OS X, Windows, and Linux users.\">\n <meta name=\"twitter:card\" content=\"summary\">\n <meta name=\"twitter:domain\" value=\"https://www.getpostman.com\">\n <meta name=\"twitter:image\" content=\"https://www.getpostman.com/img/v2/logo-glyph.png\">\n <!-- <link rel=\"stylesheet\" type=\"text/css\" href=\"/css/bootstrap.min.css\"/> -->\n <!-- Injecting style tags-->\n <link href='/assets/vendor.css?v=1550705995231' media='all' rel='stylesheet' type='text/css'/>\n <link href='/assets/platformVendor.css?v=1550705995522' media='all' rel='stylesheet' type='text/css'/>\n <link href='/assets/main.css?v=1550705998649' media='all' rel='stylesheet' type='text/css'/>\n <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->\n <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->\n <!--[if lt IE 9]>\n <script src=\"https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js\"></script>\n <script src=\"https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js\"></script>\n <![endif]-->\n </head>\n <body class=\"homepage\">\n <!-- Google Tag Manager -->\n <noscript>\n <iframe src=\"//www.googletagmanager.com/ns.html?id=GTM-M42M5N\"\n height=\"0\" width=\"0\" style=\"display:none;visibility:hidden\"></iframe>\n </noscript>\n <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':\n new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],\n j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=\n '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);\n})(window,document,'script','dataLayer','GTM-M42M5N');\nvar disableOverlaySignin = false;\n</script>\n <!-- End Google Tag Manager -->\n <!-- \n *** USE THIS FILE WHEN EMBEDDING INTO OTHER FILES ***\n this contains everything needed for site navigation in single template \n-->\n <header>\n <div class=\"container\">\n <a href=\"/\" class=\"header__logo\">\n <img src=\"/img/logos/postman/header-treatment.svg\" alt=\"Postman Logo\" />\n </a>\n <!-- siteNav will be appended here if screen is larger than tablet portrait -->\n <div id=\"headerNav\"></div>\n <div id=\"mobile-menu-button\" class=\"header__menu-button\">\n <i class=\"pm-icon-menu\"></i>\n </div>\n </div>\n </header>\n <!-- This is the mobile container for the site navigation -->\n <div class=\"site-mobile-menu\">\n <div class=\"mobile-menu__header\">\n <a href=\"/\">\n <img src=\"/img/logos/postman/header-treatment.svg\" alt=\"Postman Logo\" />\n </a>\n </div>\n <!-- siteNav will be appended here if screen is less than tablet portrait -->\n <div id=\"mobileNav\"></div>\n </div>\n <div class=\"site-mobile-menu__overlay\"></div>\n <!-- This is the main site navigation that is used in both the Site Header and Site Mobile Menu -->\n <div id=\"siteNav\" class=\"site-nav\">\n <nav class=\"site-nav__main-menu\">\n <ul>\n <li class=\"dropdown\">\n Product \n <i class=\"dropdown__icon pm-icon-chevron-down\"></i>\n <ul class=\"dropdown__menu\">\n <li class=\"menu__item\">\n <a href=\"/products\">\n Postman\n \n <div class=\"item__tagline\">\n The complete API-First Development Platform\n </div>\n </a>\n </li>\n <li class=\"menu__item\">\n <a href=\"/api-network/\">\n API Network\n \n <div class=\"item__tagline\">\n A directory of who's running in postman\n </div>\n </a>\n </li>\n </ul>\n </li>\n <li class=\"dropdown\">\n Plans & Pricing \n <i class=\"dropdown__icon pm-icon-chevron-down\"></i>\n <ul class=\"dropdown__menu\">\n <li class=\"menu__item\">\n <a href=\"/pricing\">\n Compare Postman Plans\n \n <div class=\"item__tagline\">\n Details on Postman's features and pricing\n </div>\n </a>\n </li>\n <li class=\"menu__item\">\n <a href=\"/enterprise\">\n Postman Enterprise\n \n <div class=\"item__tagline\">\n Postman for Enterprise Teams\n </div>\n </a>\n </li>\n </ul>\n </li>\n <li class=\"menu__item\">\n <a href=\"https://learning.getpostman.com\">Learning Center</a>\n </li>\n </ul>\n </nav>\n <nav class=\"site-nav__secondary-menu\">\n <a href=\"/support\" class=\"secondary-menu__menu-item\">\n <i class=\"pm-icon-help\"></i> Support\n </a>\n <!--\n -- DO NOT REMOVE 'pingdom-transactional-check__sign-in-button'. \n -- This class is required for the Sign In button as there is a check running within Pingdom\n -->\n <a\n href=\"https://app.getpostman.com/signup?redirect=web\"\n class=\"button button--small button--sign-in hide-if-signedin pingdom-transactional-check__sign-in-button\"\n >\n Sign In\n </a>\n <a href=\"https://app.getpostman.com/\" class='button button--dashboard button--small sign-in-button hide-if-signedout'>Dashboard</a>\n </div>\n </div>\n <main class=\"homepage__content-wrapper\">\n <div class=\"hero-backdrop\">\n <section class=\"hero hero--transparent\">\n <div class=\"container\">\n <div class=\"hero__body\">\n <div class=\"body__title\">\n Postman Simplifies API Development.\n </div>\n <div class=\"body__text\">\n Get easy, API-First solutions with the industry's only complete API Development Environment.\n </div>\n <div class=\"body__actions\">\n <a class=\"button hide-if-signedin actions__button\" href=\"/downloads\">Get Started</a>\n <a class=\"button hide-if-signedout actions__button\" href=\"https://learning.getpostman.com/docs/\">Read the Docs</a>\n </div>\n </div>\n <div class=\"hero__media\">\n <img class=\"img-responsive\" src=\"/img/pages/home/enterprise-shuttle-no-flame.svg\" alt=\"\">\n <div class=\"flame-wrapper\">\n <div class=\"flame outer\"></div>\n <div class=\"flame middle\"></div>\n <div class=\"flame inner\"></div>\n </div>\n </div>\n </div>\n </section>\n <section class=\"homepage__stats\">\n <div class=\"container\">\n <div class=\"stats__stat\">\n <div class=\"stat__number\">\n 6 million +\n </div>\n <div class=\"stat__title\">\n Developers\n </div>\n </div>\n <div class=\"stats__stat\">\n <div class=\"stat__number\">\n 200,000 +\n </div>\n <div class=\"stat__title\">\n Companies\n </div>\n </div>\n <div class=\"stats__stat\">\n <div class=\"stat__number\">\n 130 million +\n </div>\n <div class=\"stat__title\">\n APIs\n </div>\n </div>\n </div>\n </section>\n <section class=\"homepage__postman-api-dev\">\n <div class=\"container\">\n <div class=\"postman-api-dev__title\">\n How Postman Improves API Development\n </div>\n <div class=\"postman-api-dev__cards\">\n <div class=\"card card--is-rounded card--add-shadow\">\n <div class=\"card__media\">\n <img src=\"/img/pages/home/ade-icon.svg\" alt=\"complete ade\">\n \n </div>\n <div class=\"card__body\">\n <div class=\"body__title\">\n The Most Complete ADE\n </div>\n <div class=\"body__text\">\n Postman is the only complete API development environment, and flexibly integrates with the software development cycle.\n </div>\n <div class=\"body__action\">\n <a class=\"button button--rounded button--dark\" href=\"/products\">Learn More</a>\n </div>\n </div>\n </div>\n <div class=\"card card--is-rounded card--add-shadow\">\n <div class=\"card__media\">\n <img src=\"/img/pages/home/tools-icon.svg\" alt=\"integrated tools\">\n \n </div>\n <div class=\"card__body\">\n <div class=\"body__title\">\n Integrated Tools\n </div>\n <div class=\"body__text\">\n Postman's built-in tools offer solutions for managing APIs in every stage of development — designing & mock, testing, documentation and monitoring.\n </div>\n <div class=\"body__action\">\n <a class=\"button button--rounded button--dark\" href=\"/tools\">Learn More</a>\n </div>\n </div>\n </div>\n <div class=\"card card--is-rounded card--add-shadow\">\n <div class=\"card__media\">\n <img src=\"/img/pages/home/plans-icon.svg\" alt=\"plans for everyone\">\n \n </div>\n <div class=\"card__body\">\n <div class=\"body__title\">\n Plans Sizes for Everyone\n </div>\n <div class=\"body__text\">\n Postman has a plan that works for everybody — from individual contributors to small development teams to large scale enterprise teams.\n </div>\n <div class=\"body__action\">\n <a class=\"button button--rounded button--dark\" href=\"/pricing\">Learn More</a>\n </div>\n </div>\n </div>\n </div>\n </div>\n </section>\n <div class=\"hero-backdrop__accents\">\n <img class=\"accent accent__satellite\" src=\"/img/pages/home/satellite.svg\" alt=\"\">\n <img class=\"accent accent__ring-planet\" src=\"/img/pages/home/ring-planet.svg\" alt=\"\">\n <img class=\"accent accent__starfield-1\" src=\"/img/pages/home/starfield-1.svg\" alt=\"\">\n <img class=\"accent accent__starfield-2\" src=\"/img/pages/home/starfield-2.svg\" alt=\"\">\n <img class=\"accent accent__starfield-3\" src=\"/img/pages/home/starfield-3.svg\" alt=\"\">\n \n </div>\n <div class=\"hero-backdrop__horizon\"></div>\n </div>\n <section class=\"homepage__postman-for-teams\">\n <div class=\"container\">\n <div class=\"postman-for-teams__body\">\n <div class=\"body__title\">\n Postman is for Teams\n </div>\n <div class=\"body__text\">\n Postman empowers teams of all sizes to seamlessly collaborate in real time across shared workspaces and\n collections. Postman team workspaces ensure teams stay organized and maintain a single source of truth\n throughout the entire API development lifecycle.\n </div>\n <div class=\"body__action\">\n <a href=\"/workspaces\" class=\"button\">Super Charge Your Team</a>\n </div>\n </div>\n <div class=\"postman-for-teams__media\">\n <img class=\"img-responsive\" src=\"/img/pages/home/team-space-shuttle.svg\" alt=\"Postman space shuttle\">\n \n </div>\n </div>\n </section>\n <section class=\"homepage__postman-complete-ade\">\n <div class=\"container\">\n <div class=\"postman-complete-ade__title\">\n Postman Delivers the \n <span class=\"title--underline\">ONLY</span> Complete ADE System.\n </div>\n <div class=\"postman-complete-ade__text\">\n Postman streamlines the development process and captures a single source of truth about your APIs while also\n simplifying collaboration across your teams and organizations.\n </div>\n <div class=\"postman-complete-ade__action\">\n <a href=\"/downloads\" class=\"button button--add-shadow\">Get Started</a>\n </div>\n </div>\n <div class=\"postman-complete-ade__accents\">\n <div class=\"accents__space-station-left\">\n <img class=\"space-station\" src=\"/img/pages/home/space-station.svg\" alt=\"space station\">\n <img class=\"spaceman\" src=\"/img/pages/home/spaceman-left.svg\" alt=\"spaceman\">\n \n </div>\n <div class=\"accents__space-station-right\">\n <img class=\"space-station\" src=\"/img/pages/home/space-station.svg\" alt=\"space station\">\n <img class=\"spaceman\" src=\"/img/pages/home/spaceman-right.svg\" alt=\"spaceman\">\n \n </div>\n </div>\n </section>\n <section class=\"homepage__postman-customers\">\n <div class=\"container\">\n <div class=\"postman-customers__title\">\n Postman Leads the Way in the API-first Universe.\n </div>\n <div class=\"postman-customers__text\">\n Postman is used by 6 million developers and more than 200,000 companies to access 130 million APIs every month.\n </div>\n <div class=\"postman-customers__carousel\">\n <div class=\"carousel__card\">\n <div class=\"card__media\">\n <img class=\"img-responsive\" src=\"/img/logos/company-logos/bigcommerce.svg\" alt=\"BigCommerce Logo\">\n \n </div>\n <div class=\"card__text\">\n “Postman has been essential to us in rapidly developing new APIs - internally we use it to debug and share\n particular contexts easily across our environments.”\n </div>\n <div class=\"card__accent\"></div>\n <div class=\"card__credit\">\n <div class=\"credit__name\">Nathan Booker</div>\n <div class=\"credit__position\">API Product Manager</div>\n </div>\n </div>\n <div id=\"customers-carousel\" class=\"carousel\">\n <div class=\"carousel-column\">\n <img src=\"/img/logos/company-logos/clarifai.svg\" alt=\"Clarifai Logo\">\n <img src=\"/img/logos/company-logos/amc-alt.svg\" alt=\"AMC Theatres Logo\">\n <img src=\"/img/logos/company-logos/bigcommerce.svg\" alt=\"BigCommerce Logo\">\n <img src=\"/img/logos/company-logos/tyk.svg\" alt=\"TYK Logo\">\n \n </div>\n <div class=\"carousel-column\">\n <img src=\"/img/v2/homepage/company-logos/adobe.svg\" alt=\"Adobe logo\">\n <img src=\"/img/v2/homepage/company-logos/twitter.svg\" alt=\"Twitter logo\">\n <img src=\"/img/v2/homepage/company-logos/hotelbeds-logo.png\" alt=\"Hotelbeds logo\">\n <img src=\"/img/v2/homepage/company-logos/docu-sign.png\" alt=\"docu-sign logo\">\n \n </div>\n <div class=\"carousel-column\">\n <img src=\"/img/logos/company-logos/pay-pal.svg\" alt=\"PayPal Logo\">\n <img src=\"/img/logos/company-logos/mulesoft.svg\" alt=\"MuleSoft Logo\">\n <img src=\"/img/logos/company-logos/square.svg\" alt=\"Square Logo\">\n <img src=\"/img/logos/company-logos/imgur.svg\" alt=\"Imgur Logo\">\n \n </div>\n <div class=\"carousel-column\">\n <img src=\"/img/logos/company-logos/shopify.svg\" alt=\"Shopify Logo\">\n <img src=\"/img/logos/company-logos/hootsuite.png\" alt=\"Hootsuite Logo\">\n <img src=\"/img/logos/company-logos/best-buy.svg\" alt=\"Best Buy Logo\">\n <img src=\"/img/logos/company-logos/coursera.svg\" alt=\"Coursera Logo\">\n \n </div>\n <div class=\"carousel-column\">\n <img src=\"/img/logos/company-logos/microsoft.svg\" alt=\"Microsoft Logo\">\n <img src=\"/img/logos/company-logos/atlassian.svg\" alt=\"Atlassian Logo\">\n <img src=\"/img/logos/company-logos/sikka.svg\" alt=\"Sikka Logo\">\n <img src=\"/img/logos/company-logos/synapsefi.png\" alt=\"Synapse Financial Logo\">\n \n </div>\n </div>\n </div>\n <div class=\"postman-customers__action\">\n <a href=\"/resources/case-studies/\" class=\"button button--dark button--rounded\">See More Customers</a>\n </div>\n </div>\n </section>\n <section class=\"homepage__postman-news\">\n <div class=\"container\">\n <div class=\"postman-news__title\">\n What's Happening at Postman\n </div>\n <div class=\"postman-news__subtitle\">\n Stay up to date with everything going on with Postman\n </div>\n <div class=\"postman-news__body\">\n <!-- Twitter TODO: Replace with Blog Entries data when available-->\n <div class=\"news__column\">\n <div class=\"column__title\">\n <img class=\"title__icon\" src=\"/img/pages/home/blog-icon.svg\" alt=\"\">\n Recent Tweets\n \n </div>\n <div id=\"postman-recent-tweets\" class=\"column__body\"></div>\n </div>\n <!-- Recent Releases TODO: Replace with Upcoming Events data when available -->\n <div class=\"news__column\">\n <div class=\"column__title\">\n <img class=\"title__icon\" src=\"/img/pages/home/upcoming-events-icon.svg\" alt=\"\">\n Recent Releases\n \n </div>\n <div id=\"postman-recent-releases\" class=\"column__body\"></div>\n </div>\n <div class=\"news__column\">\n <div class=\"column__title\">\n <img class=\"title__icon\" src=\"/img/pages/home/news-icon.svg\" alt=\"\">\n In The News\n \n </div>\n <div id=\"postman-news-articles\" class=\"column__body\"></div>\n </div>\n </div>\n </div>\n </section>\n <section class=\"partial__plan-picker\">\n <div class=\"container\">\n <div class=\"plan-picker__media\">\n <img class=\"img-responsive\" src=\"/img/partials/plan-picker/spaceman-plan-picker.svg\" alt=\"spaceman plan picker\">\n \n </div>\n <div class=\"plan-picker__body\">\n <div class=\"body__title\">\n Which Postman Plan Will Deliver for You?\n </div>\n <div class=\"body__text\">\n Postman has solutions for everyone, from individuals to teams and enterprises.\n </div>\n <div class=\"body__action\">\n <a href=\"/pricing\" class=\"button button--add-shadow\">Compare Plans</a>\n </div>\n </div>\n </div>\n </section>\n </main>\n <footer>\n <div class=\"container\">\n <div class=\"row\">\n <img class=\"footer__pm-logo\" src=\"/img/v2/logo-mark.svg\" alt=\"logo mark\"/>\n <ul class=\"column\">\n <li class=\"column__title\">\n Platform\n </li>\n <li>\n <a href=\"https://learning.getpostman.com/docs/postman/workspaces/intro_to_workspaces/\">Collections & Workspaces</a>\n </li>\n <li>\n <a href=\"https://learning.getpostman.com/docs/postman/api_documentation/intro_to_api_documentation\">Documentation</a>\n </li>\n <li>\n <a href=\"https://learning.getpostman.com/docs/postman/mock_servers/intro_to_mock_servers\">Mock Servers</a>\n </li>\n <li>\n <a href=\"/monitoring\">Monitoring</a>\n </li>\n <li>\n <a href=\"https://docs.api.getpostman.com\">Postman API</a>\n </li>\n <li>\n <a href=\"/api-network\">API Network</a>\n </li>\n <li>\n <a href=\"/integrations\">Integrations</a>\n </li>\n <li>\n <a href=\"https://learning.getpostman.com/docs/postman/collection_runs/command_line_integration_with_newman\">Newman</a>\n </li>\n </ul>\n <ul class=\"column\">\n <li class=\"column__title\">\n Plans & Pricing\n </li>\n <li>\n <a href=\"/pricing\">Overview</a>\n </li>\n <li>\n <a href=\"/postman\">Postman</a>\n </li>\n <li>\n <a href=\"/pro\">Postman Pro</a>\n </li>\n <li>\n <a href=\"/enterprise\">Postman Enterprise</a>\n </li>\n </ul>\n <ul class=\"column\">\n <li class=\"column__title\">\n Support\n </li>\n <li>\n <a href=\"https://learning.getpostman.com\">Docs</a>\n </li>\n <li>\n <a href=\"/downloads/release-notes\">Release Notes</a>\n </li>\n <li>\n <a href=\"https://support.getpostman.com/hc/en-us\">Help Center</a>\n </li>\n <li>\n <a href=\"http://pages.getpostman.com/Resellers-Support.html\" target=\"_blank\">Resellers</a>\n </li>\n <li>\n <a href=\"http://status.getpostman.com/\" target=\"_blank\">Status</a>\n </li>\n </ul>\n <ul class=\"column\">\n <li class=\"column__title\">\n Company\n </li>\n <li>\n <a href=\"/company\">About</a>\n </li>\n <li>\n <a href=\"/resources/case-studies/\">Customers</a>\n </li>\n <li>\n <a href=\"/jobs/\">\n Jobs\n \n <span class=\"highlight-text bold-text reduce-text\">\n We're Hiring!\n </span>\n </a>\n </li>\n <li>\n <a href=\"/resources/press-releases/\">Company Resources</a>\n </li>\n <li>\n <a href=\"/contact\">Contact</a>\n </li>\n <li>\n <a href=\"https://store.getpostman.com\" target=\"_blank\">Swag Shop</a>\n </li>\n </ul>\n <ul class=\"column\">\n <li class=\"column__title\">\n Resources\n </li>\n <li>\n <a href=\"/apps\">Downloads</a>\n </li>\n <li>\n <a href=\"/community\">Community</a>\n </li>\n <li>\n <a href=\"http://blog.getpostman.com\" target=\"_blank\">Blog</a>\n </li>\n <li>\n <a href=\"/security\">Security</a>\n </li>\n <li>\n <a href=\"/licenses/privacy\">Privacy and Terms</a>\n </li>\n </ul>\n <ul class=\"column column__social\">\n <li>\n <a href=\"https://www.facebook.com/getpostman/\" target=\"_blank\" rel=\"noopener\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M10.6826 20H1.10385C0.49403 20 0 19.5057 0 18.8961V1.10384C0 0.494104 0.494108 0 1.10385 0H18.8962C19.5058 0 20 0.494104 20 1.10384V18.8961C20 19.5057 19.5057 20 18.8962 20H13.7997V12.2549H16.3994L16.7886 9.23649H13.7997V7.30943C13.7997 6.43554 14.0424 5.84 15.2955 5.84L16.8939 5.83931V3.13962C16.6175 3.10284 15.6687 3.02065 14.5648 3.02065C12.2603 3.02065 10.6826 4.4273 10.6826 7.0105V9.23649H8.0763V12.2549H10.6826V20Z\" fill=\"#ffffff\"/>\n </svg>\n </a>\n </li>\n <li>\n <a href=\"https://twitter.com/postmanclient\" target=\"_blank\" rel=\"noopener\">\n <svg width=\"30\" height=\"24\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M25.955 10.483c-.032.25-.097.492-.162.734-.583 2.175-1.647 4.222-2.986 6.01-3.93 5.163-9.79 7.257-15.664 5.683-2.76-.74-5.257-2.334-7.143-4.542.376.138.784.285 1.17.388 2.31.619 4.747.384 6.952-.654-2.141-.61-3.651-2.68-3.733-5.07a4.73 4.73 0 0 0 2.339.516c-2.237-1.156-3.4-3.873-2.643-6.445l.019-.07a5.09 5.09 0 0 0 2.126 1.31C5.063 6.921 4.682 5.005 5.172 3.175c.26-.967.743-1.873 1.414-2.582 1.684 4.115 4.95 7.21 8.961 8.545.015-.44.094-.863.205-1.278.814-3.038 3.75-4.879 6.575-4.122 1.38.37 2.562 1.352 3.229 2.715a10.32 10.32 0 0 0 3.594-.443c-.719 1.14-1.817 2.03-3.052 2.402 1.055.172 2.1.119 3.152-.08a10.71 10.71 0 0 1-3.295 2.151z\" fill=\"#ffffff\" fill-rule=\"evenodd\"/>\n </svg>\n </a>\n </li>\n <li>\n <a href=\"https://www.linkedin.com/company/postman-api-tools-\" target=\"_blank\" rel=\"noopener\">\n <svg width=\"22\" height=\"22\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M5.134 7.363H.537v14.044h4.597zM5.437 3.019C5.407 1.642 4.44.593 2.866.593 1.293.593.265 1.642.265 3.019c0 1.348.998 2.427 2.541 2.427h.03c1.603 0 2.601-1.079 2.601-2.427zM21.714 13.354c0-4.313-2.268-6.32-5.293-6.32-2.44 0-3.534 1.362-4.144 2.319v-1.99H7.68c.06 1.318 0 14.044 0 14.044h4.598v-7.843c0-.42.03-.839.151-1.139.333-.839 1.09-1.707 2.36-1.707 1.664 0 2.329 1.288 2.329 3.175v7.514h4.597v-8.053z\" fill=\"#ffffff\" fill-rule=\"evenodd\"/>\n </svg>\n </a>\n </li>\n </ul>\n </div>\n <div class=\"row\">\n <div class=\"footer__copyright\">\n <span>© \n <span id=\"current-year\"></span> Postman, Inc.\n </span>\n <span>All Rights Reserved</span>\n </div>\n </div>\n </div>\n </footer>\n <!-- Main Side Menu -->\n <div id=\"sidebar-toggleable\">\n <ul class=\"pm-sidebar-main-nav\">\n <li class='sidebar-menu-item'>\n <a href=\"/\" class=\"active\">Home</a>\n </li>\n <li class='sidebar-menu-item'>\n <a href=\"/products\" class=\"\">Product</a>\n </li>\n <li class='sidebar-menu-item'>\n <input type='checkbox' id='solutions-submenu' class='submenu-input' />\n <label for='solutions-submenu' class='submenu-label'>Solutions</label>\n <ul class='sidebar-submenu'>\n <li>\n <a href='/publishers' class=\"\">Publishers</a>\n </li>\n <li>\n <a href='/devops' class=\"\">DevOps</a>\n </li>\n <li>\n <a href='/qa' class=\"\">QA</a>\n <li>\n <a href='/front-end' class=\"\">Front-end</a>\n <li>\n <a href='/back-end' class=\"\">Back-end</a>\n </ul>\n </li>\n <li class='sidebar-menu-item'>\n <a href=\"/enterprise\" class=\"\">Enterprise</a>\n </li>\n <li class='sidebar-menu-item'>\n <a href=\"/pricing\" class=\"\">Plans & Pricing</a>\n </li>\n <li class='sidebar-menu-item'>\n <a href=\"https://learning.getpostman.com/\" class=\"\">Docs</a>\n </li>\n <li class='sidebar-menu-item'>\n <a href=\"/api-network/\" class=\"\">API Network</a>\n </li>\n <li class=\"sidebar-menu-item hide-if-signedin\">\n <a href=\"https://app.getpostman.com/signup?redirect=web\">Sign In</a>\n </li>\n <li class=\"sidebar-menu-item hide-if-signedout\">\n <a href=\"https://app.getpostman.com/\">Dashboard</a>\n </li>\n </ul>\n </div>\n </body>\n <!-- \n---- TODO: All of these functions need to be revisted and refactored.\n---- Multiple scripts belong to dead/dying pages or alternate standards\n---- have been established such as the Sign In/Dashboard button with the\n---- new header release in v4.6.0.\n -->\n <!-- Injecting script tags-->\n <script src='/assets/vendor.js?v=1550706000961' type='application/javascript'></script>\n <script src='/assets/platformVendor.js?v=1550705995495' type='application/javascript'></script>\n <script src='/assets/main.js?v=1550706001138' type='application/javascript'></script>\n <script src='/assets/platformMain.js?v=1550705995533' type='application/javascript'></script>\n <script type=\"text/javascript\">\n var $body = $('body');\n\n /**\n * Authentication\n */\n $(function () {\n // Check if the user is signed in and add a class\n // to the body if so. This will hide elements with the\n // .hide-if-signedin class and show elements with\n // the .hide-if-signedout class.\n if (document.cookie.indexOf('getpostmanlogin') > -1) {\n $body.addClass('signedin');\n }\n });\n\n $(document).on('touchstart', function (e) {\n var thisNodeName = e.target.nodeName;\n\n if (thisNodeName === 'INPUT' || thisNodeName === 'TEXTAREA') {\n return;\n }\n\n document.activeElement.blur();\n $('input, textarea').blur();\n });\n\n /**\n * AWS Slider\n */\n $(function () {\n var $slideController = $('.slide-controller');\n\n $slideController.on('click', function () {\n var $self = $(this),\n $group = $self.parent().children('.slide-controller'),\n slideIndex;\n\n slideIndex = $group.index($self);\n\n $self.addClass('active').siblings().removeClass('active');\n $self\n .parent()\n .next('.slide-content-wrap')\n .children('.slide-contents')\n .css('left', -slideIndex * 100 + '%');\n });\n });\n\n /**\n * Auto-playing videos\n *\n * Just add a pm-auto-video class to the HTML5 video element\n * and the video will play when visible, and pause when not\n * visible.\n */\n $(function () {\n var $autoVideos = $('video.pm-auto-video'),\n scrollWatch,\n autoVideo = function () {\n $autoVideos.each(function () {\n var $this = $(this);\n\n if ($this.is(':in-viewport')) {\n $this.get(0).play();\n } else {\n $this.get(0).pause();\n }\n });\n };\n\n $(document).on('scroll', function () {\n clearTimeout(scrollWatch);\n scrollWatch = setTimeout(autoVideo, 500);\n });\n });\n\n /**\n * Collection infographic scroll handler\n */\n $(document).ready(function () {\n var tag,\n firstScriptTag;\n\n $('.collection_infographic').length && $('.pm-page-wrap').fullpage({\n scrollBar: true\n });\n\n // Load the YT iFrame API if a video embed exists on the page\n if ($('.pm-resp-yt-wrap').length) {\n tag = document.createElement('script');\n\n tag.src = \"https://www.youtube.com/iframe_api\";\n firstScriptTag = document.getElementsByTagName('script')[0];\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n }\n });\n\n function onYouTubeIframeAPIReady() {\n var aws_player;\n\n if ($('#aws-gateway-postman-video').length) {\n aws_player = new YT.Player('aws-gateway-postman-video', {\n videoId: 'pfoKFaHisbY'\n });\n }\n\n $('[href=\"#aws-gateway-postman-video-wrap\"]').click(function () {\n aws_player.playVideo();\n });\n }\n\n /**\n * Show native options by default and hide others on the apps page\n */\n $(function () {\n var os,\n arch;\n\n os = function () {\n var platform = navigator.platform,\n os = 'windows';\n\n platform.match('Mac') && (os = 'osx');\n platform.match('Win') && (os = 'windows');\n platform.match('Linux') && (os = 'linux');\n\n return os;\n };\n\n // Mark the active tab based on detected os\n var tab = $(\".app-tabs .app-list li[data-platform='changelog-\" + os() + \"-app']\");\n if (tab.length) {\n $('.app-tabs .app-list li').removeClass('active');\n $('.tab-content .tab-pane').removeClass('active');\n\n $(tab).addClass('active');\n $('.tab-content #changelog-' + os() + '-app').addClass('active');\n }\n\n // Update the link & UI when arch is changed\n $('[data-architecture]').on('click', function (e) {\n e.preventDefault();\n\n var $this = $(this),\n path = $this.children('a').attr('href'),\n plat = $this.data('platform'),\n arch = $this.data('architecture'),\n $label = $this.parent().siblings('.pm-btn').find('.arch-label'),\n $trigger = $this.parents('.dropdown').siblings('.pm-btn');\n\n // Update the CTA href & dropdown label state\n $trigger.attr('href', path);\n $label.html(arch);\n });\n });\n</script>\n </html>"
}
]
}
],
"event": [
{
"listen": "prerequest",
"script": {
"id": "f9c5d32c-5495-4860-861f-1d5f8cee21d8",
"type": "text/javascript",
"exec": [
""
]
}
},
{
"listen": "test",
"script": {
"id": "0b5ff4b7-7fa4-4178-a09b-85c054343ffb",
"type": "text/javascript",
"exec": [
""
]
}
}
]
}