+ 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. |
||
---|---|---|
.. | ||
config.el | ||
packages.el | ||
README.org |
: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 anorg-mode
buffer, create a restclient source block and hack away.restclient-mode
andcompany-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