-
Notifications
You must be signed in to change notification settings - Fork 0
/
basics.html
79 lines (73 loc) · 23.1 KB
/
basics.html
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
<!DOCTYPE html><html><head><title>REST-EZ | Command Line Interface (CLI)</title><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0"><meta name="robots" content="index,follow"><meta name="theme-color" content="#212121"><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"><link href="https://fonts.googleapis.com/css?family=Hind:400,700&display=swap" rel="stylesheet"><link href="https://fonts.googleapis.com/css?family=Source+Code+Pro:300,400&display=swap" rel="stylesheet"><link href="https://fonts.googleapis.com/icon?family=Material+Icons%7CMaterial+Icons+Outlined&display=swap" rel="stylesheet"><style>
body, input, button {
font-family: 'Hind', sans-serif;
}
code, .hljs {
font-family: 'Source Code Pro', 'Courier New', Courier, monospace;
}
.icon-font {
font-family: 'Material Icons';
font-weight: normal;
font-style: normal;
font-size: 24px; /* Preferred icon size */
display: inline-block;
line-height: 1;
text-transform: none;
letter-spacing: normal;
word-wrap: normal;
white-space: nowrap;
direction: ltr;
/* Support for all WebKit browsers. */
-webkit-font-smoothing: antialiased;
/* Support for Safari and Chrome. */
text-rendering: optimizeLegibility;
/* Support for Firefox. */
-moz-osx-font-smoothing: grayscale;
/* Support for IE. */
font-feature-settings: 'liga';
}
.icon-font.outline {
font-family: 'Material Icons Outlined';
}
</style><link href="/rest-ez/docs/assets/codedoc-styles.css" rel="stylesheet"><script async="" defer="" src="/rest-ez/docs/assets/codedoc-bundle.js"></script></head><body><div class="header-0-0-6"><script async="" defer="" src="https://buttons.github.io/buttons.js"></script><a class="github-button" data-color-scheme="no-preference: light; light: light; dark: dark;" data-icon="false" data-show-count="true" data-size="false" href="https://github.com/blossomfinance/rest-ez/">Star</a><br><br><a class="watermark-0-0-5" href="https://github.com/CONNECT-platform/codedoc" target="_blank">Created With<svg viewBox="0 0 536 296" version="1.1" xmlns="http://www.w3.org/2000/svg"><g id="codedoc" transform="translate(-244.000000, -364.000000)" fill-rule="nonzero"><path d="M580,532 C615.346224,532 644,560.653776 644,596 C644,631.346224 615.346224,660 580,660 C544.653776,660 516,631.346224 516,596 C516,560.653776 544.653776,532 580,532 Z M716,532 C751.346224,532 780,560.653776 780,596 C780,631.346224 751.346224,660 716,660 L692,660 C687.581722,660 684,656.418278 684,652 C684,647.581722 687.581722,644 692,644 L716,644 C742.509668,644 764,622.509668 764,596 C764,569.490332 742.509668,548 716,548 L692,548 C687.581722,548 684,544.418278 684,540 C684,535.581722 687.581722,532 692,532 L716,532 Z M468,532 C472.418278,532 476,535.581722 476,540 L476,652 C476,656.418278 472.418278,660 468,660 L444,660 C408.653776,660 380,631.346224 380,596 C380,560.653776 408.653776,532 444,532 L468,532 Z M332,532 C336.418278,532 340,535.581722 340,540 L340,652 C340,656.418278 336.418278,660 332,660 L252,660 C247.581722,660 244,656.418278 244,652 L244,540 C244,535.581722 247.581722,532 252,532 L332,532 Z M580,548 C553.490332,548 532,569.490332 532,596 C532,622.509668 553.490332,644 580,644 C606.509668,644 628,622.509668 628,596 C628,569.490332 606.509668,548 580,548 Z M461,548 L444,548 C417.490332,548 396,569.490332 396,596 C396,622.509668 417.490332,644 444,644 L461,644 L461,548 Z M444,364 C479.346224,364 508,392.653776 508,428 C508,463.346224 479.346224,492 444,492 C408.653776,492 380,463.346224 380,428 C380,392.653776 408.653776,364 444,364 Z M332,364 C336.418278,364 340,367.581722 340,372 C340,376.418278 336.418278,380 332,380 L308,380 C281.490332,380 260,401.490332 260,428 C260,454.509668 281.490332,476 308,476 L332,476 C336.418278,476 340,479.581722 340,484 C340,488.418278 336.418278,492 332,492 L308,492 C272.653776,492 244,463.346224 244,428 C244,392.653776 272.653776,364 308,364 L332,364 Z M580,364 C615.346224,364 644,392.653776 644,428 C644,463.346224 615.346224,492 580,492 L556,492 C551.581722,492 548,488.418278 548,484 L548,372 C548,367.581722 551.581722,364 556,364 L580,364 Z M772,364 C776.418278,364 780,367.581722 780,372 C780,376.418278 776.418278,380 772,380 L700,380 L700,420 L772,420 C776.418278,420 780,423.581722 780,428 C780,432.418278 776.418278,436 772,436 L700,436 L700,476 L772,476 C776.418278,476 780,479.581722 780,484 C780,488.418278 776.418278,492 772,492 L692,492 C687.581722,492 684,488.418278 684,484 L684,372 C684,367.581722 687.581722,364 692,364 L772,364 Z M444,380 C417.490332,380 396,401.490332 396,428 C396,454.509668 417.490332,476 444,476 C470.509668,476 492,454.509668 492,428 C492,401.490332 470.509668,380 444,380 Z M580,380 L563,380 L563,476 L580,476 C606.509668,476 628,454.509668 628,428 C628,401.490332 606.509668,380 580,380 Z"></path></g></svg></a></div><div id="-codedoc-container" class="container"><h1 id="command-line-interface-cli" class="heading-0-0-2"><span class="anchor-0-0-3" data-ignore-text=""><span class="icon-font" data-ignore-text="" style="vertical-align: sub">link</span></span>Command Line Interface (CLI)</h1><p>Basic usage:</p><pre class=""><code class="bash -codedoc-code-snippet code-0-0-12" tabindex="0"><span class="wmbar-0-0-17"><span></span><span></span><span></span><span></span></span><div class="line-0-0-16 -codedoc-code-line" data-content="rest-ez [options] <path(s)>" id="code1-l1"><span class="lineCounter-0-0-13 prim -codedoc-line-counter">1<span class="-codedoc-line-link"><span class="icon-font" data-ignore-text="" style="vertical-align: sub">link</span></span></span><span class="termPrefix-0-0-14 -codedoc-code-term-prefix">$</span>rest-ez <span class="token punctuation">[</span>options<span class="token punctuation">]</span> <span class="token operator"><</span>path<span class="token punctuation">(</span>s<span class="token punctuation">)</span><span class="token operator">></span></div><br></code></pre><p>Invoke <code>rest-ez</code> from command-line:</p><pre class=""><code class="bash -codedoc-code-snippet code-0-0-12" tabindex="0"><span class="wmbar-0-0-17"><span></span><span></span><span></span><span></span></span><div class="line-0-0-16 -codedoc-code-line" data-content="./node_modules/.bin/rest-ez" id="code2-l1"><span class="lineCounter-0-0-13 prim -codedoc-line-counter">1<span class="-codedoc-line-link"><span class="icon-font" data-ignore-text="" style="vertical-align: sub">link</span></span></span><span class="termPrefix-0-0-14 -codedoc-code-term-prefix">$</span>./node_modules/.bin/rest-ez</div><br><span class="termOutput-0-0-15 -codedoc-code-term-output"> <span style="color:rgb(255,255,255)">Test Suite path/pattern/directory is not specified, Looking for suites in specs directory</span>
<span style="color:rgb(255,255,255)">No test suites found</span></span></code></pre><p>By default REST-EZ looks for specs in the <code>specs/</code> folder</p><p><br><br></p><ul><li><a href="#debugging">Debugging</a></li><li><a href="#running-suites-in-parallel">Running Suites in Parallel</a></li><li><a href="/rest-ez/docs/cli/options">Options</a></li><li><a href="/rest-ez/docs/cli/reporters">Reporters</a></li></ul><h2 id="debugging" class="heading-0-0-2"><span class="anchor-0-0-3" data-ignore-text=""><span class="icon-font" data-ignore-text="" style="vertical-align: sub">link</span></span>Debugging</h2><p>You can optionally log all info about failed requests using <code>--reporter-options logRequests</code>.</p><p>Log all failed requests in an <strong>HTML</strong> report:</p><pre class=""><code class="bash -codedoc-code-snippet code-0-0-12" tabindex="0"><span class="wmbar-0-0-17"><span></span><span></span><span></span><span></span></span><div class="line-0-0-16 -codedoc-code-line" data-content="./node_modules/.bin/rest-ez --reporter html --reporter-options logRequests" id="code3-l1"><span class="lineCounter-0-0-13 prim -codedoc-line-counter">1<span class="-codedoc-line-link"><span class="icon-font" data-ignore-text="" style="vertical-align: sub">link</span></span></span><span class="termPrefix-0-0-14 -codedoc-code-term-prefix">$</span>./node_modules/.bin/rest-ez --reporter html --reporter-options logRequests</div><br></code></pre><p>Log all failed requests in a <strong>JSON</strong> report:</p><pre class=""><code class="bash -codedoc-code-snippet code-0-0-12" tabindex="0"><span class="wmbar-0-0-17"><span></span><span></span><span></span><span></span></span><div class="line-0-0-16 -codedoc-code-line" data-content="./node_modules/.bin/rest-ez --reporter json --reporter-options logRequests" id="code4-l1"><span class="lineCounter-0-0-13 prim -codedoc-line-counter">1<span class="-codedoc-line-link"><span class="icon-font" data-ignore-text="" style="vertical-align: sub">link</span></span></span><span class="termPrefix-0-0-14 -codedoc-code-term-prefix">$</span>./node_modules/.bin/rest-ez --reporter json --reporter-options logRequests</div><br></code></pre><blockquote><p>⚠️ Currently, use of <code>logRequests</code> option only works with a <code>reporter</code> specified, as the example above.</p></blockquote><p><br><br></p><h2 id="running-suites-in-parallel" class="heading-0-0-2"><span class="anchor-0-0-3" data-ignore-text=""><span class="icon-font" data-ignore-text="" style="vertical-align: sub">link</span></span>Running Suites in Parallel</h2><p>When you have lots of test suites, it might take a while to execute all of them serially.</p><p>To reduce the test execution time, REST-EZ is built with parallelism. You can invoke rest-ez with <code>--parallel</code> option to trigger parallel execution mode.
All reporters respect parallel mode and generate correct reports with properly mapped errors if any.</p><p>This is how you can execute suites in parallel with rest-ez</p><pre class=""><code class="bash -codedoc-code-snippet code-0-0-12" tabindex="0"><span class="wmbar-0-0-17"><span></span><span></span><span></span><span></span></span><div class="line-0-0-16 -codedoc-code-line" data-content="./node_modules/.bin/rest-ez --parallel 8" id="code5-l1"><span class="lineCounter-0-0-13 prim -codedoc-line-counter">1<span class="-codedoc-line-link"><span class="icon-font" data-ignore-text="" style="vertical-align: sub">link</span></span></span><span class="termPrefix-0-0-14 -codedoc-code-term-prefix">$</span>./node_modules/.bin/rest-ez --parallel <span class="token number">8</span></div><br></code></pre><p>Above command will start test execution in parallel mode with 8 suites at a time.</p><blockquote><p>⚠️ NOTE: maximum number of suites supported in parallel is 24</p></blockquote><p><br><br></p><div class="contentnav-0-0-11" data-no-search=""><a href="#command-line-interface-cli" class="h1" data-content-highlight="command-line-interface-cli">Command Line Interface (CLI)</a><a href="#debugging" class="h2" data-content-highlight="debugging">Debugging</a><a href="#running-suites-in-parallel" class="h2" data-content-highlight="running-suites-in-parallel">Running Suites in Parallel</a></div></div><div id="-codedoc-toc" class="toc-0-0-8"><div class="content-0-0-9"><p><a href="/rest-ez/">Home</a></p><div class="collapse-0-0-4 "><script id="V_fhYacsTL">(function(){function load(){if (window.__sdh_transport){window.__sdh_transport("V_fhYacsTL", "Xr7HYUUSa3lzFxSh+fMmtg==", {});} }; if (document.readyState == 'complete') load(); else window.addEventListener('load', load); })()</script><div class="label" onclick="this.parentElement.classList.toggle('open')"><span class="text">Getting Started</span><span class="icon-font closed">chevron_right</span></div><div class="content"><p><a href="/rest-ez/docs/getting-started/installation">Installation</a>
<a href="/rest-ez/docs/getting-started/basic-usage">Basic Usage</a>
<a href="/rest-ez/docs/getting-started/graphql">GraphQL</a></p></div></div><div class="collapse-0-0-4 "><script id="vGJjsmPmFe">(function(){function load(){if (window.__sdh_transport){window.__sdh_transport("vGJjsmPmFe", "Xr7HYUUSa3lzFxSh+fMmtg==", {});} }; if (document.readyState == 'complete') load(); else window.addEventListener('load', load); })()</script><div class="label" onclick="this.parentElement.classList.toggle('open')"><span class="text">Basics</span><span class="icon-font closed">chevron_right</span></div><div class="content"><p><a href="/rest-ez/docs/basics/overview">Overview</a>
<a href="/rest-ez/docs/basics/meta">Meta</a>
<a href="/rest-ez/docs/basics/config">Config</a>
<a href="/rest-ez/docs/basics/specs">Specs</a></p></div></div><div class="collapse-0-0-4 "><script id="tgfPentoBw">(function(){function load(){if (window.__sdh_transport){window.__sdh_transport("tgfPentoBw", "Xr7HYUUSa3lzFxSh+fMmtg==", {});} }; if (document.readyState == 'complete') load(); else window.addEventListener('load', load); })()</script><div class="label" onclick="this.parentElement.classList.toggle('open')"><span class="text">Request</span><span class="icon-font closed">chevron_right</span></div><div class="content"><p><a href="/rest-ez/docs/request/request-basics">Request Basics</a>
<a href="/rest-ez/docs/request/headers">Headers</a>
<a href="/rest-ez/docs/request/cookies">Cookies</a>
<a href="/rest-ez/docs/request/query-parameters">Query Parameters</a>
<a href="/rest-ez/docs/request/path-parameters">Path Parameters</a></p><div class="collapse-0-0-4 "><script id="ieqsbQdRZ_">(function(){function load(){if (window.__sdh_transport){window.__sdh_transport("ieqsbQdRZ_", "Xr7HYUUSa3lzFxSh+fMmtg==", {});} }; if (document.readyState == 'complete') load(); else window.addEventListener('load', load); })()</script><div class="label" onclick="this.parentElement.classList.toggle('open')"><span class="text">Payload Body</span><span class="icon-font closed">chevron_right</span></div><div class="content"><p><a href="/rest-ez/docs/request/payload-body/json-body">JSON Body</a>
<a href="/rest-ez/docs/request/payload-body/binary-data">Binary Data</a>
<a href="/rest-ez/docs/request/payload-body/url-encoded-form-data">URL Encoded Form Data</a>
<a href="/rest-ez/docs/request/payload-body/multi-part-form-data">Multi-Part Form Data</a></p></div></div><p><a href="/rest-ez/docs/request/file-uploads">File Uploads</a>
<a href="/rest-ez/docs/basics/specs#retry">Auto-Retry</a>
<a href="/rest-ez/docs/request/additional-options">Additional Options</a></p></div></div><div class="collapse-0-0-4 "><script id="dAZgORwKJQ">(function(){function load(){if (window.__sdh_transport){window.__sdh_transport("dAZgORwKJQ", "Xr7HYUUSa3lzFxSh+fMmtg==", {});} }; if (document.readyState == 'complete') load(); else window.addEventListener('load', load); })()</script><div class="label" onclick="this.parentElement.classList.toggle('open')"><span class="text">Response Validation</span><span class="icon-font closed">chevron_right</span></div><div class="content"><p><a href="/rest-ez/docs/response-validation/overview">Overview</a></p><div class="collapse-0-0-4 "><script id="XvTdAnnQke">(function(){function load(){if (window.__sdh_transport){window.__sdh_transport("XvTdAnnQke", "Xr7HYUUSa3lzFxSh+fMmtg==", {});} }; if (document.readyState == 'complete') load(); else window.addEventListener('load', load); })()</script><div class="label" onclick="this.parentElement.classList.toggle('open')"><span class="text">Assertions</span><span class="icon-font closed">chevron_right</span></div><div class="content"><p><a href="/rest-ez/docs/response-validation/overview#exact-value">Exact Value</a>
<a href="/rest-ez/docs/response-validation/overview#regular-expression">Regular Expression</a>
<a href="/rest-ez/docs/response-validation/overview#exact-value">Exact Value</a>
<a href="/rest-ez/docs/response-validation/overview#custom-validator">Custom JS Validator</a></p></div></div><p><a href="/rest-ez/docs/response-validation/status-code">Status Code</a>
<a href="/rest-ez/docs/response-validation/overview#general-assertions">Headers & Cookies</a></p><div class="collapse-0-0-4 "><script id="fMxiudYgje">(function(){function load(){if (window.__sdh_transport){window.__sdh_transport("fMxiudYgje", "Xr7HYUUSa3lzFxSh+fMmtg==", {});} }; if (document.readyState == 'complete') load(); else window.addEventListener('load', load); })()</script><div class="label" onclick="this.parentElement.classList.toggle('open')"><span class="text">Body</span><span class="icon-font closed">chevron_right</span></div><div class="content"><p><a href="/rest-ez/docs/response-validation/body/overview">Overview</a>
<a href="/rest-ez/docs/response-validation/body/overview#exact-value">Exact Value</a>
<a href="/rest-ez/docs/response-validation/body/overview#regular-expression">Regular Expression</a>
<a href="/rest-ez/docs/response-validation/body/overview#json-path">JSON Path</a>
<a href="/rest-ez/docs/response-validation/body/json-schema-inline">JSON Schema Inline</a>
<a href="/rest-ez/docs/response-validation/body/json-schema-file">JSON Schema File</a>
<a href="/rest-ez/docs/response-validation/body/swagger-open-api">Swagger / Open API</a></p></div></div></div></div><div class="collapse-0-0-4 "><script id="uLmxzhfGBq">(function(){function load(){if (window.__sdh_transport){window.__sdh_transport("uLmxzhfGBq", "Xr7HYUUSa3lzFxSh+fMmtg==", {});} }; if (document.readyState == 'complete') load(); else window.addEventListener('load', load); })()</script><div class="label" onclick="this.parentElement.classList.toggle('open')"><span class="text">Hooks & JS</span><span class="icon-font closed">chevron_right</span></div><div class="content"><p><a href="/rest-ez/docs/hooks/overview">Overview</a></p><div class="collapse-0-0-4 "><script id="_QAMTPcvqa">(function(){function load(){if (window.__sdh_transport){window.__sdh_transport("_QAMTPcvqa", "Xr7HYUUSa3lzFxSh+fMmtg==", {});} }; if (document.readyState == 'complete') load(); else window.addEventListener('load', load); })()</script><div class="label" onclick="this.parentElement.classList.toggle('open')"><span class="text">Function Types</span><span class="icon-font closed">chevron_right</span></div><div class="content"><p><a href="/rest-ez/docs/hooks/types#js-synchronous-functions">JS Inline Functions</a>
<a href="/rest-ez/docs/hooks/types#js-async-functions">JS Async Inline Functions</a>
<a href="/rest-ez/docs/hooks/types#js-from-external-files">JS Modules</a></p></div></div><div class="collapse-0-0-4 "><script id="tItvCSsEir">(function(){function load(){if (window.__sdh_transport){window.__sdh_transport("tItvCSsEir", "Xr7HYUUSa3lzFxSh+fMmtg==", {});} }; if (document.readyState == 'complete') load(); else window.addEventListener('load', load); })()</script><div class="label" onclick="this.parentElement.classList.toggle('open')"><span class="text">Suite-Level Hooks</span><span class="icon-font closed">chevron_right</span></div><div class="content"><p><a href="/rest-ez/docs/hooks/list#before_all">before_all</a>
<a href="/rest-ez/docs/hooks/list#after_all">after_all</a>
<a href="/rest-ez/docs/hooks/list#before_each">before_each</a>
<a href="/rest-ez/docs/hooks/list#after_each">after_each</a></p></div></div><div class="collapse-0-0-4 "><script id="pXrjcPUpTu">(function(){function load(){if (window.__sdh_transport){window.__sdh_transport("pXrjcPUpTu", "Xr7HYUUSa3lzFxSh+fMmtg==", {});} }; if (document.readyState == 'complete') load(); else window.addEventListener('load', load); })()</script><div class="label" onclick="this.parentElement.classList.toggle('open')"><span class="text">Spec-Level Hooks</span><span class="icon-font closed">chevron_right</span></div><div class="content"><p><a href="/rest-ez/docs/hooks/list#before_test">before_test</a>
<a href="/rest-ez/docs/hooks/types#after_test">after_test</a></p></div></div><div class="collapse-0-0-4 "><script id="mgyjnylTbz">(function(){function load(){if (window.__sdh_transport){window.__sdh_transport("mgyjnylTbz", "Xr7HYUUSa3lzFxSh+fMmtg==", {});} }; if (document.readyState == 'complete') load(); else window.addEventListener('load', load); })()</script><div class="label" onclick="this.parentElement.classList.toggle('open')"><span class="text">Context</span><span class="icon-font closed">chevron_right</span></div><div class="content"><p><a href="/rest-ez/docs/hooks/context#suite">Suite Context</a>
<a href="/rest-ez/docs/hooks/context#test">Test Context</a>
<a href="/rest-ez/docs/hooks/context#response">Response Context</a></p></div></div></div></div><div class="collapse-0-0-4 "><script id="xnNU_LkwAJ">(function(){function load(){if (window.__sdh_transport){window.__sdh_transport("xnNU_LkwAJ", "Xr7HYUUSa3lzFxSh+fMmtg==", {});} }; if (document.readyState == 'complete') load(); else window.addEventListener('load', load); })()</script><div class="label" onclick="this.parentElement.classList.toggle('open')"><span class="text">DRY & Reusing Specs</span><span class="icon-font closed">chevron_right</span></div><div class="content"><p><a href="/rest-ez/docs/reusing-specs/overview">Overview</a>
<a href="/rest-ez/docs/reusing-specs/looping">Looping</a>
<a href="/rest-ez/docs/reusing-specs/yaml-anchors">Yaml Anchors</a>
<a href="/rest-ez/docs/reusing-specs/run-spec-in-js">Run Existing Spec</a></p></div></div><div class="collapse-0-0-4 "><script id="HiUHlMJIjH">(function(){function load(){if (window.__sdh_transport){window.__sdh_transport("HiUHlMJIjH", "Xr7HYUUSa3lzFxSh+fMmtg==", {});} }; if (document.readyState == 'complete') load(); else window.addEventListener('load', load); })()</script><div class="label" onclick="this.parentElement.classList.toggle('open')"><span class="text">Command Line Interface (CLI)</span><span class="icon-font closed">chevron_right</span></div><div class="content"><p><a href="/rest-ez/docs/cli/basics#command-line-interface-cli">Basics</a>
<a href="/rest-ez/docs/cli/basics#debugging">Debugging</a>
<a href="/rest-ez/docs/cli/basics#running-suites-in-parallel">Running in Parallel</a>
<a href="/rest-ez/docs/cli/options">Options</a>
<a href="/rest-ez/docs/cli/reporters">Reporters</a></p></div></div></div><div class="search-0-0-10"><script id="KZ_DZYFzIe">(function(){function load(){if (window.__sdh_transport){window.__sdh_transport("KZ_DZYFzIe", "YyttjbRX11tYgT3iwZJrBQ==", {"repo":"rest-ez","user":"blossomfinance","root":"docs/md","pick":"\\.md$","drop":"(^_)|(\\/_)"});} }; if (document.readyState == 'complete') load(); else window.addEventListener('load', load); })()</script></div></div><div class="footer-0-0-7"><div class="left"><script id="GxeNgWcdsM">(function(){function load(){if (window.__sdh_transport){window.__sdh_transport("GxeNgWcdsM", "8iYm5KC+ozzQAZso6kr3tQ==", {});} }; if (document.readyState == 'complete') load(); else window.addEventListener('load', load); })()</script></div><div class="main"><div class="inside"><a href="https://github.com/blossomfinance/rest-ez/" target="_blank">GitHub</a></div></div><div class="right"><script id="BTXy_qwlCM">(function(){function load(){if (window.__sdh_transport){window.__sdh_transport("BTXy_qwlCM", "VuteVElYSJBdX52ZFnVrYA==", {});} }; if (document.readyState == 'complete') load(); else window.addEventListener('load', load); })()</script></div></div><script id="gqCYgIsEZj">(function(){function load(){if (window.__sdh_transport){window.__sdh_transport("gqCYgIsEZj", "HmAKFyAd8r6xjvdVYefaKw==", {"namespace":"/rest-ez"});} }; if (document.readyState == 'complete') load(); else window.addEventListener('load', load); })()</script></body></html>