Adding REST services as org-mode blocks

I've now used this twice to investigate and document a new API.
This commit is contained in:
Howard Abrams 2022-06-16 12:15:43 -07:00
parent 450dfe043e
commit 5329879253

View file

@ -349,6 +349,53 @@ And turn on ALL the languages:
(css . t) (css . t)
(plantuml . t))) (plantuml . t)))
#+END_SRC #+END_SRC
*** REST Web Services
:PROPERTIES:
:header-args: :var user-agent="my-super-agent"
:END:
There are many ways in Emacs to query to investigate REST-oriented web services. The [[https://github.com/zweifisch/ob-http][ob-http]] adds HTTP calls to standard org blocks.
#+begin_src emacs-lisp
(use-package ob-http
:init
(add-to-list 'org-babel-load-languages '(http . t)))
#+end_src
And lets see how it works:
#+begin_src http :pretty :results value replace :wrap src js
GET https://api.github.com/repos/zweifisch/ob-http/languages
Accept: application/json
User-Agent: ${user-agent}
#+end_src
#+results:
#+begin_src js
{
"Emacs Lisp": 15327,
"Shell": 139
}
#+end_src
Another approach is [[https://github.com/alf/ob-restclient.el][ob-restclient]], that may be based on the [[https://github.com/pashky/restclient.el][restclient]] project.
#+begin_src emacs-lisp
(use-package ob-restclient
:init
(add-to-list 'org-babel-load-languages '(restclient . t)))
#+end_src
And lets try this:
#+begin_src restclient :results value replace :wrap src js
GET https://api.github.com/repos/zweifisch/ob-http/languages
Accept: application/vnd.github.moondragon+json
User-Agent: ${user-agent}
#+end_src
#+results:
#+begin_src js
{
"Emacs Lisp": 15327,
"Shell": 139
}
#+end_src
*** Graphviz *** Graphviz
The [[https://graphviz.org/][graphviz project]] can be written in org blocks, and then rendered as an image: The [[https://graphviz.org/][graphviz project]] can be written in org blocks, and then rendered as an image:
#+NAME: ob-graphviz #+NAME: ob-graphviz