summaryrefslogtreecommitdiffstats
path: root/2019/talks/29.md
blob: 44b9c679802ee916ba0c9c06702c47c72d439f3e (plain) (blame)
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
[[!meta title="Restclient and org-mode for Api Documentation and Testing - Mackenzie Bligh"]]
[[!meta copyright="Copyright © 2019 Mackenzie Bligh"]]

[[!template  id=vid
src="https://mirror.csclub.uwaterloo.ca/emacsconf/2019/emacsconf-2019-29-restclient-and-org-mode-for-api-documentation-and-testing--mackenziebligh.webm"
type="video/webm"]]

### Download

- [Video](https://mirror.csclub.uwaterloo.ca/emacsconf/2019/emacsconf-2019-29-restclient-and-org-mode-for-api-documentation-and-testing--mackenziebligh.webm) (720p)

### Transcript

- 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.