doomemacs/modules/lang/rest
Henrik Lissner c7254e7bdc
Major optimization refactor, across the board
+ enable lexical-scope everywhere (lexical-binding = t): ~5-10% faster
  startup; ~5-20% general boost
+ reduce consing, function calls & garbage collection by preferring
  cl-loop & dolist over lambda closures (for mapc[ar], add-hook, and
  various cl-lib filter/map/reduce functions) -- where possible
+ prefer functions with dedicated opcodes, like assq (see byte-defop's
  in bytecomp.el for more)
+ prefer pcase & cond (faster) over cl-case
+ general refactor for code readability
+ ensure naming & style conventions are adhered to
+ appease byte-compiler by marking unused variables with underscore
+ defer minor mode activation to after-init, emacs-startup or
  window-setup hooks; a customization opportunity for users + ensures
  custom functionality won't interfere with startup.
2017-06-09 00:47:45 +02:00
..
config.el Major optimization refactor, across the board 2017-06-09 00:47:45 +02:00
packages.el
README.org Update READMEs & add new ones 2017-05-25 20:09:12 +02:00

:lang rest

This module adds REST support.

  • Code-completion (company-restclient)
  • Code evaluation
  • org-mode: babel support (ob-restclient)

restclient-mode is tremendously useful for testing REST APIs. My workflow is to open an org-mode buffer, create a restclient source block and hack away. restclient-mode and company-restclient power this arcane wizardry.

Install

No additional setup required.

Example

GET https://jsonplaceholder.typicode.com/posts/1
#+RESULTS:
#+BEGIN_SRC js
{
  "userId": 1,
  "id": 1,
  "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
  "body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
}
// GET https://jsonplaceholder.typicode.com/posts/1
// HTTP/1.1 200 OK
// Date: Thu, 25 May 2017 13:43:42 GMT
// Content-Type: application/json; charset=utf-8
// Content-Length: 292
// Connection: keep-alive
// Set-Cookie: __cfduid=d3484257c800700f9882305963fa9d5d91495719822; expires=Fri, 25-May-18 13:43:42 GMT; path=/; domain=.typicode.com; HttpOnly
// X-Powered-By: Express
// Vary: Origin, Accept-Encoding
// Access-Control-Allow-Credentials: true
// Cache-Control: public, max-age=14400
// Pragma: no-cache
// Expires: Thu, 25 May 2017 17:43:42 GMT
// X-Content-Type-Options: nosniff
// Etag: W/"124-yiKdLzqO5gfBrJFrcdJ8Yq0LGnU"
// Via: 1.1 vegur
// CF-Cache-Status: HIT
// Server: cloudflare-nginx
// CF-RAY: 3648ecd7ef833d0d-CPH
// Request duration: 0.347179s
#+END_SRC