TITLE Restclient and org-mode for Api Documentation and Testing - Mackenzie Bligh

  • Hi everyone, my name is Mack, I am a back-end software engineer with ?Tarot? in San Francisco, and I'd like to talk to you today about how I integrate Emacs with RestClient and Org-mode into my daily workflow for documenting and testing APIs. All of the materials for this talk can be found in EmacsConf 2019 repo with the url here https://github.com/mack1070101/emacs-conf-2019. This example uses restclient.el, which is a domain specific language for working with restful APIs and OBRestClient to provide the wrappers for Org-mode, however these are just the wrappers for what I use, the principles I demo here can work with any set of programming languages that's supported by Org-mode and has network calls.

  • So I find this way of writing documentation great because it helps people get into using Emacs and provides a shallow learning curve without being overwhelming of how to use Emacs. The second thing that's great about it is it helps support maintenance of documentation, because the documentation itself is actually used to interact with APIs. Therefore it's providing utility to developers and they can use it and maintain it all at the same time. As an added benefit you have full Org-mode support for task management doing things like exporting to other formats, building scripts via tangling, as well as writing very complex API interactions by feeding the output of one API into the input of another API.

  • I tend to favor using ELisp for simple things like building requests, log in strings, things like that as you'll see. I do try to avoid using languages or tooling that aren't integrated with Emacs, however if it makes my life easier I'll use ubiquitous tools like curl and jq as needed. I've included a mock server that I already have running here, and you can find details about how to get that set up if you're interested in the repo and link up above. So let's jump right in.

  • Here is provided a sample document for a stock trading application. We've got

To be completed later.