emacs/var/elfeed/db/data/5a/5aaa1f70afaad6e6defc3f1d7ebc69f6559ab199
2022-01-03 12:49:32 -06:00

95 lines
7.3 KiB
Plaintext

<p>
Today I found <a href="https://github.com/zweifisch/ob-http">ob-http</a> and decided to try it out a little. I quickly ran into a
problem of a trailing newline. Basically I tried to do something like this:
</p>
<div class="org-src-container">
<pre class="src src-org"><span class="org-org-meta-line">#+name: id</span>
<span class="org-org-block-begin-line">#+begin_src http :select .id :cache yes</span>
<span class="org-org-block"><span class="org-constant">POST</span></span><span class="org-org-block"> </span><span class="org-org-block"><span class="org-function-name">/foo</span></span>
<span class="org-org-block"><span class="org-variable-name">Content-Type</span></span><span class="org-org-block"><span class="org-comment">:</span></span><span class="org-org-block"> </span><span class="org-org-block"><span class="org-string">application/json</span></span>
<span class="org-org-block"><span class="org-comment">{</span></span>
<span class="org-org-block"> </span><span class="org-org-block"><span class="org-string">"foo"</span></span><span class="org-org-block"><span class="org-comment">:</span></span><span class="org-org-block"> </span><span class="org-org-block"><span class="org-string">"toto"</span></span><span class="org-org-block"><span class="org-comment">,</span></span>
<span class="org-org-block"> </span><span class="org-org-block"><span class="org-string">"bar"</span></span><span class="org-org-block"><span class="org-comment">:</span></span><span class="org-org-block"> </span><span class="org-org-block"><span class="org-string">"tata"</span></span>
<span class="org-org-block"><span class="org-comment">}</span></span>
<span class="org-org-block-end-line">#+end_src</span>
<span class="org-org-meta-line">#+RESULTS[c5fd99206822a2109d7ac1d140185e6ec3f4f1d9]: id</span>
<span class="org-org-block-begin-line">#+begin_example</span>
<span class="custom">48722051-f81b-433f-acb4-a65d961ec841</span>
<span class="org-org-block-end-line">#+end_example</span>
<span class="org-org-meta-line">#+header: :var id=id</span>
<span class="org-org-block-begin-line">#+begin_src http</span>
<span class="org-org-block"><span class="org-constant">POST</span></span><span class="org-org-block"> </span><span class="org-org-block"><span class="org-function-name">/foo/${id}/fix</span></span>
<span class="org-org-block-end-line">#+end_src</span>
</pre>
</div>
<p>
The trailing newline messes up the URL though, and the second code block fails.
</p>
<p>
I found two ways to deal with it, using a table and using <code>org-sbe</code>
</p>
<div class="outline-2" id="outline-container-org3ef143c">
<h2 id="org3ef143c">Using a table</h2>
<div class="outline-text-2" id="text-org3ef143c">
<div class="org-src-container">
<pre class="src src-org"><span class="org-org-meta-line">#+name: id</span>
<span class="org-org-block-begin-line">#+begin_src http :select .id :cache yes :results table</span>
<span class="org-org-block"><span class="org-constant">POST</span></span><span class="org-org-block"> </span><span class="org-org-block"><span class="org-function-name">/foo</span></span>
<span class="org-org-block"><span class="org-variable-name">Content-Type</span></span><span class="org-org-block"><span class="org-comment">:</span></span><span class="org-org-block"> </span><span class="org-org-block"><span class="org-string">application/json</span></span>
<span class="org-org-block"><span class="org-comment">{</span></span>
<span class="org-org-block"> </span><span class="org-org-block"><span class="org-string">"foo"</span></span><span class="org-org-block"><span class="org-comment">:</span></span><span class="org-org-block"> </span><span class="org-org-block"><span class="org-string">"toto"</span></span><span class="org-org-block"><span class="org-comment">,</span></span>
<span class="org-org-block"> </span><span class="org-org-block"><span class="org-string">"bar"</span></span><span class="org-org-block"><span class="org-comment">:</span></span><span class="org-org-block"> </span><span class="org-org-block"><span class="org-string">"tata"</span></span>
<span class="org-org-block"><span class="org-comment">}</span></span>
<span class="org-org-block-end-line">#+end_src</span>
<span class="org-org-meta-line">#+RESULTS[c5fd99206822a2109d7ac1d140185e6ec3f4f1d9]: id</span>
<span class="org-org-block-begin-line">#+begin_example</span>
<span class="custom">| 48722051-f81b-433f-acb4-a65d961ec841 |</span>
<span class="org-org-block-end-line">#+end_example</span>
<span class="org-org-meta-line">#+header: :var id=id[0,0]</span>
<span class="org-org-block-begin-line">#+begin_src http</span>
<span class="org-org-block"><span class="org-constant">POST</span></span><span class="org-org-block"> </span><span class="org-org-block"><span class="org-function-name">/foo/${id}/fix</span></span>
<span class="org-org-block-end-line">#+end_src</span>
</pre>
</div>
</div>
</div>
<div class="outline-2" id="outline-container-org33493ca">
<h2 id="org33493ca">Using <code>org-sbe</code></h2>
<div class="outline-text-2" id="text-org33493ca">
<div class="org-src-container">
<pre class="src src-org"><span class="org-org-meta-line">#+name: id</span>
<span class="org-org-block-begin-line">#+begin_src http :select .id :cache yes</span>
<span class="org-org-block"><span class="org-constant">POST</span></span><span class="org-org-block"> </span><span class="org-org-block"><span class="org-function-name">/foo</span></span>
<span class="org-org-block"><span class="org-variable-name">Content-Type</span></span><span class="org-org-block"><span class="org-comment">:</span></span><span class="org-org-block"> </span><span class="org-org-block"><span class="org-string">application/json</span></span>
<span class="org-org-block"><span class="org-comment">{</span></span>
<span class="org-org-block"> </span><span class="org-org-block"><span class="org-string">"foo"</span></span><span class="org-org-block"><span class="org-comment">:</span></span><span class="org-org-block"> </span><span class="org-org-block"><span class="org-string">"toto"</span></span><span class="org-org-block"><span class="org-comment">,</span></span>
<span class="org-org-block"> </span><span class="org-org-block"><span class="org-string">"bar"</span></span><span class="org-org-block"><span class="org-comment">:</span></span><span class="org-org-block"> </span><span class="org-org-block"><span class="org-string">"tata"</span></span>
<span class="org-org-block"><span class="org-comment">}</span></span>
<span class="org-org-block-end-line">#+end_src</span>
<span class="org-org-meta-line">#+RESULTS[c5fd99206822a2109d7ac1d140185e6ec3f4f1d9]: id</span>
<span class="org-org-block-begin-line">#+begin_example</span>
<span class="custom">48722051-f81b-433f-acb4-a65d961ec841</span>
<span class="org-org-block-end-line">#+end_example</span>
<span class="org-org-meta-line">#+header: :var id=(org-sbe id)</span>
<span class="org-org-block-begin-line">#+begin_src http</span>
<span class="org-org-block"><span class="org-constant">POST</span></span><span class="org-org-block"> </span><span class="org-org-block"><span class="org-function-name">/foo/${id}/fix</span></span>
<span class="org-org-block-end-line">#+end_src</span>
</pre>
</div>
</div>
</div>
<div class="taglist"><a href="https://magnus.therning.org/tags.html">Tags</a>: <a href="https://magnus.therning.org/tag-emacs.html">emacs</a> <a href="https://magnus.therning.org/tag-org-mode.html">org-mode</a> </div>