#+TITLE: Restclient layer

#+TAGS: layer|tool

* Table of Contents                     :TOC_5_gh:noexport:
- [[#description][Description]]
  - [[#features][Features:]]
- [[#install][Install]]
- [[#configuration][Configuration]]
- [[#restclient][Restclient]]
  - [[#key-bindings][Key bindings]]
- [[#ob-http][ob-http]]

* Description
This layer provides a REPL-like interface for http requests.

** Features:
- REPL for http requests via [[https://github.com/pashky/restclient.el][restclient]]
- Alternative =org= integration via [[http://github.com/zweifisch/ob-http][ob-http]]

* Install
To use this configuration layer, add it to your =~/.spacemacs=. You will need to
add =restclient= to the existing =dotspacemacs-configuration-layers= list in this
file.

* Configuration
By default the layer uses [[https://github.com/pashky/restclient.el][restclient]]. To use =org= via [[http://github.com/zweifisch/ob-http][ob-http]] by default set
the layer variable =restclient-use-org= to =t=.

Note that both =restclient= and =ob-http= are always installed so you can
choose the mode at any time.

* Restclient
Any file with an =.http= extension is opened in a =restclient= buffer.
Full documentation and examples can be found in the package's [[https://github.com/pashky/restclient.el][GitHub Page]].
Also there is an [[http://emacsrocks.com/e15.html][Emacs Rocks!]] episode of it.

There is support for =org-babel= and =restclient= code blocks, for instance:

#+BEGIN_EXAMPLE

  #+BEGIN_SRC restclient
    GET http://example.com
  #+END_SRC
#+END_EXAMPLE

** Key bindings

| Key binding | Description                                                 |
|-------------+-------------------------------------------------------------|
| ~SPC m j~   | helm-restclient                                             |
| ~SPC m n~   | Jump to next request                                        |
| ~SPC m p~   | Jump to previous request                                    |
| ~SPC m s~   | Send and stay in window (pretty-print response if possible) |
| ~SPC m S~   | Send and switch window (pretty-print response if possible)  |
| ~SPC m r~   | Send and stay in window (do not attempt to pretty-print)    |
| ~SPC m R~   | Send and switch window (do not attempt to pretty-print)     |
| ~SPC m y~   | Copy query under the cursor as a curl command               |

* ob-http
Any file with an =.http= extension is opened in an =org= buffer with org babel
configured to use =ob-http=.
Full documentation and examples can be found in the package's [[http://github.com/zweifisch/ob-http][GitHub Page]].
