|
567 | 567 | <h1 id="generating-requests">Generating requests</h1> |
568 | 568 | <h2 id="the-request-function">The request function</h2> |
569 | 569 | <p>Generate a request with the <code>request</code> function:</p> |
570 | | -<div class="highlight"><pre><span></span><code><span class="o">>>></span> <span class="kn">from</span><span class="w"> </span><span class="nn">jsonrpcclient</span><span class="w"> </span><span class="kn">import</span> <span class="n">request</span> |
| 570 | +<div class="highlight"><pre><span></span><code><span class="o">>>></span> <span class="kn">from</span><span class="w"> </span><span class="nn">jsonrpcclient</span><span class="w"> </span><span class="kn">import</span> <span class="n">request</span><span class="p">,</span> <span class="n">request_json</span> |
571 | 571 | <span class="o">>>></span> <span class="n">request</span><span class="p">(</span><span class="s2">"ping"</span><span class="p">)</span> |
572 | | -<span class="p">{</span><span class="s2">"jsonrpc"</span><span class="p">:</span> <span class="s2">"2.0"</span><span class="p">,</span> <span class="s2">"method"</span><span class="p">:</span> <span class="s2">"ping"</span><span class="p">,</span> <span class="s2">"2.0"</span><span class="p">,</span> <span class="s2">"id"</span><span class="p">:</span> <span class="mi">1</span><span class="p">}</span> |
| 572 | +<span class="p">{</span><span class="s1">'jsonrpc'</span><span class="p">:</span> <span class="s1">'2.0'</span><span class="p">,</span> <span class="s1">'method'</span><span class="p">:</span> <span class="s1">'ping'</span><span class="p">,</span> <span class="s1">'id'</span><span class="p">:</span> <span class="mi">1</span><span class="p">}</span> |
573 | 573 | </code></pre></div> |
| 574 | +<p><code>request_json</code> gives you a string:</p> |
| 575 | +<div class="highlight"><pre><span></span><code><span class="o">>>></span> <span class="n">request_json</span><span class="p">(</span><span class="s2">"ping"</span><span class="p">)</span> |
| 576 | +<span class="s1">'{"jsonrpc": "2.0", "method": "ping", "id": 2}'</span> |
| 577 | +</code></pre></div> |
| 578 | +<p>It simply applies <code>str</code> after <code>request</code>.</p> |
574 | 579 | <h2 id="ids">Ids</h2> |
575 | | -<p>Subsequent calls increment the <code>id</code>: |
576 | | -<div class="highlight"><pre><span></span><code>>>> request("ping") |
577 | | -{"jsonrpc": "2.0", "method": "ping", "2.0", "id": 2} |
578 | | ->>> request("ping") |
579 | | -{"jsonrpc": "2.0", "method": "ping", "2.0", "id": 3} |
580 | | -</code></pre></div></p> |
581 | | -<p>Use an explicit <code>id</code>: |
582 | | -<div class="highlight"><pre><span></span><code>>>> request("ping", id="foo") |
583 | | -{"jsonrpc": "2.0", "method": "ping", "2.0", "id": "foo"} |
584 | | -</code></pre></div></p> |
585 | | -<p>Or generate a different type of <code>id</code>: |
| 580 | +<p>Subsequent calls increment the <code>id</code>:</p> |
| 581 | +<div class="highlight"><pre><span></span><code>> > > request("ping") |
| 582 | +> > > {"jsonrpc": "2.0", "method": "ping", "2.0", "id": 3} |
| 583 | +> > > request("ping") |
| 584 | +> > > {"jsonrpc": "2.0", "method": "ping", "2.0", "id": 4} |
| 585 | +</code></pre></div> |
| 586 | +<p>Use an explicit <code>id</code>:</p> |
| 587 | +<div class="highlight"><pre><span></span><code>> > > request("ping", id="foo") |
| 588 | +> > > {"jsonrpc": "2.0", "method": "ping", "2.0", "id": "foo"} |
| 589 | +</code></pre></div> |
| 590 | +<p>Or generate a different type of <code>id</code>:</p> |
586 | 591 | <div class="highlight"><pre><span></span><code><span class="o">>>></span> <span class="kn">from</span><span class="w"> </span><span class="nn">jsonrpcclient</span><span class="w"> </span><span class="kn">import</span> <span class="n">request_hex</span><span class="p">,</span> <span class="n">request_random</span><span class="p">,</span> <span class="n">request_uuid</span> |
587 | 592 | <span class="o">>>></span> <span class="n">request_hex</span><span class="p">(</span><span class="s2">"foo"</span><span class="p">)</span> |
588 | 593 | <span class="p">{</span><span class="s2">"jsonrpc"</span><span class="p">:</span> <span class="s2">"2.0"</span><span class="p">,</span> <span class="s2">"method"</span><span class="p">:</span> <span class="s2">"foo"</span><span class="p">,</span> <span class="s2">"id"</span><span class="p">:</span> <span class="s2">"1"</span><span class="p">}</span> |
589 | 594 | <span class="o">>>></span> <span class="n">request_random</span><span class="p">(</span><span class="s2">"foo"</span><span class="p">)</span> |
590 | 595 | <span class="p">{</span><span class="s2">"jsonrpc"</span><span class="p">:</span> <span class="s2">"2.0"</span><span class="p">,</span> <span class="s2">"method"</span><span class="p">:</span> <span class="s2">"foo"</span><span class="p">,</span> <span class="s2">"id"</span><span class="p">:</span> <span class="s2">"qzsib147"</span><span class="p">}</span> |
591 | 596 | <span class="o">>>></span> <span class="n">request_uuid</span><span class="p">(</span><span class="s2">"foo"</span><span class="p">)</span> |
592 | 597 | <span class="p">{</span><span class="s2">"jsonrpc"</span><span class="p">:</span> <span class="s2">"2.0"</span><span class="p">,</span> <span class="s2">"method"</span><span class="p">:</span> <span class="s2">"foo"</span><span class="p">,</span> <span class="s2">"id"</span><span class="p">:</span> <span class="s2">"45480a2f-069c-42aa-a67f-f6fdd83d6026"</span><span class="p">}</span> |
593 | | -</code></pre></div></p> |
| 598 | +</code></pre></div> |
594 | 599 | <h2 id="parameters">Parameters</h2> |
595 | 600 | <p>Pass <code>params</code> to include parameters in the payload. This should be either a |
596 | 601 | tuple for positional arguments, or dict for keyword arguments.</p> |
597 | 602 | <div class="highlight"><pre><span></span><code><span class="o">>>></span> <span class="n">request</span><span class="p">(</span><span class="s2">"ping"</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="p">(</span><span class="mi">1</span><span class="p">,))</span> |
598 | | -<span class="p">{</span><span class="s2">"jsonrpc"</span><span class="p">:</span> <span class="s2">"2.0"</span><span class="p">,</span> <span class="s2">"method"</span><span class="p">:</span> <span class="s2">"ping"</span><span class="p">,</span> <span class="s2">"2.0"</span><span class="p">,</span> <span class="s2">"params"</span><span class="p">:</span> <span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="s2">"id"</span><span class="p">:</span> <span class="mi">4</span><span class="p">}</span> |
| 603 | +<span class="p">{</span><span class="s2">"jsonrpc"</span><span class="p">:</span> <span class="s2">"2.0"</span><span class="p">,</span> <span class="s2">"method"</span><span class="p">:</span> <span class="s2">"ping"</span><span class="p">,</span> <span class="s2">"2.0"</span><span class="p">,</span> <span class="s2">"params"</span><span class="p">:</span> <span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="s2">"id"</span><span class="p">:</span> <span class="mi">5</span><span class="p">}</span> |
599 | 604 | <span class="o">>>></span> <span class="n">request</span><span class="p">(</span><span class="s2">"ping"</span><span class="p">,</span> <span class="n">params</span><span class="o">=</span><span class="p">{</span><span class="s2">"key"</span><span class="p">:</span> <span class="s2">"val"</span><span class="p">})</span> |
600 | | -<span class="p">{</span><span class="s2">"jsonrpc"</span><span class="p">:</span> <span class="s2">"2.0"</span><span class="p">,</span> <span class="s2">"method"</span><span class="p">:</span> <span class="s2">"ping"</span><span class="p">,</span> <span class="s2">"2.0"</span><span class="p">,</span> <span class="s2">"params"</span><span class="p">:</span> <span class="p">{</span><span class="s2">"key"</span><span class="p">:</span> <span class="s2">"val"</span><span class="p">},</span> <span class="s2">"id"</span><span class="p">:</span> <span class="mi">5</span><span class="p">}</span> |
| 605 | +<span class="p">{</span><span class="s2">"jsonrpc"</span><span class="p">:</span> <span class="s2">"2.0"</span><span class="p">,</span> <span class="s2">"method"</span><span class="p">:</span> <span class="s2">"ping"</span><span class="p">,</span> <span class="s2">"2.0"</span><span class="p">,</span> <span class="s2">"params"</span><span class="p">:</span> <span class="p">{</span><span class="s2">"key"</span><span class="p">:</span> <span class="s2">"val"</span><span class="p">},</span> <span class="s2">"id"</span><span class="p">:</span> <span class="mi">6</span><span class="p">}</span> |
601 | 606 | </code></pre></div> |
602 | 607 | <h2 id="json-requests">JSON requests</h2> |
603 | | -<p>If you need the request serialized to a string, use <code>request_json</code>: |
| 608 | +<p>If you need the request serialized to a string, use <code>request_json</code>:</p> |
604 | 609 | <div class="highlight"><pre><span></span><code><span class="o">>>></span> <span class="kn">from</span><span class="w"> </span><span class="nn">jsonrpcclient</span><span class="w"> </span><span class="kn">import</span> <span class="n">request_json</span> |
605 | 610 | <span class="o">>>></span> <span class="n">request_json</span><span class="p">(</span><span class="s2">"foo"</span><span class="p">)</span> |
606 | 611 | <span class="s1">'{"jsonrpc": "2.0", "method": "foo", "id": 6}'</span> |
607 | | -</code></pre></div></p> |
| 612 | +</code></pre></div> |
608 | 613 | <p>You can also use request_json_hex etc., for the other id types.</p> |
609 | 614 | <h2 id="batch-requests">Batch requests</h2> |
610 | 615 | <div class="highlight"><pre><span></span><code><span class="o">>>></span> <span class="kn">import</span><span class="w"> </span><span class="nn">json</span> |
611 | 616 | <span class="o">>>></span> <span class="n">json</span><span class="o">.</span><span class="n">dumps</span><span class="p">([</span><span class="n">request</span><span class="p">(</span><span class="s2">"foo"</span><span class="p">)</span> <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">3</span><span class="p">)])</span> |
612 | 617 | <span class="s1">'[{"jsonrpc": "2.0", "method": "foo", "id": 7}, {"jsonrpc": "2.0", "method": "foo", "id": 8}, {"jsonrpc": "2.0", "method": "foo", "id": 9}]'</span> |
613 | 618 | </code></pre></div> |
614 | 619 | <h2 id="notifications">Notifications</h2> |
615 | | -<p>Use the <code>notification</code> function instead of <code>request</code>: |
| 620 | +<p>Use the <code>notification</code> function instead of <code>request</code>:</p> |
616 | 621 | <div class="highlight"><pre><span></span><code><span class="o">>>></span> <span class="kn">from</span><span class="w"> </span><span class="nn">jsonrpcclient</span><span class="w"> </span><span class="kn">import</span> <span class="n">notification</span> |
617 | 622 | <span class="o">>>></span> <span class="n">notification</span><span class="p">(</span><span class="s2">"ping"</span><span class="p">)</span> |
618 | 623 | <span class="p">{</span><span class="s2">"jsonrpc"</span><span class="p">:</span> <span class="s2">"2.0"</span><span class="p">,</span> <span class="s2">"method"</span><span class="p">:</span> <span class="s2">"ping"</span><span class="p">}</span> |
619 | | -</code></pre></div></p> |
620 | | -<p>Similar to <code>request_json</code>, <code>notification_json</code> will give you the notification |
621 | | -as a JSON string.</p> |
| 624 | +</code></pre></div> |
| 625 | +<p>As with <code>request_json</code>, <code>notification_json</code> will give you the notification as a |
| 626 | +JSON string.</p> |
622 | 627 | <div class="highlight"><pre><span></span><code><span class="o">>>></span> <span class="kn">from</span><span class="w"> </span><span class="nn">jsonrpcclient</span><span class="w"> </span><span class="kn">import</span> <span class="n">notification_json</span> |
623 | 628 | <span class="o">>>></span> <span class="n">notification_json</span><span class="p">(</span><span class="s2">"ping"</span><span class="p">)</span> |
624 | 629 | <span class="s1">'{"jsonrpc": "2.0", "method": "ping"}'</span> |
|
0 commit comments