[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
New GNU ELPA package: plz-see - Interactive HTTP client
From: |
Sacha Chua |
Subject: |
New GNU ELPA package: plz-see - Interactive HTTP client |
Date: |
Mon, 06 Nov 2023 09:19:27 -0500 |
Summary: Interactive HTTP client
Requires: emacs-29.1, plz-0.7
Website: https://github.com/astoff/plz-see.el
Keywords: comm network http
Maintainer: Augusto Stoffel <arstoffel@gmail.com>
Author: Augusto Stoffel <arstoffel@gmail.com>
━━━━━━━━━━━━
PLZ-SEE.EL
━━━━━━━━━━━━
`plz-see' is an interactive HTTP client for Emacs based on the [plz]
library. It is interactive in the sense that request responses are
pretty-printed in a pop-up buffer. It can be used to explore and test
web APIs or to debug packages that use `plz'.
The main function provided by the package is unsurprisingly named
`plz-see', which has the essentially the same API as `plz'. See the
docstring for details on the differences.
Additionally, the following variables (which become buffer-local when
set) are provided for convenience:
• `plz-see-base-url': Prefix added to the all “relative” URLs passed to
`plz-see'. Paradoxically, a URL in considered relative if it starts
with `/'
• `plz-see-base-headers': Alist of headers added to all requests.
Entries of this list can be overridden using the `HEADERS' argument of
`plz-see'.
For further customization options, see `M-x customize-group plz-see
RET'.
[plz] <https://github.com/alphapapa/plz.el>
1 Examples
══════════
Make a GET request:
┌────
│ (plz-see 'get "https://httpbin.org/get?hello=world")
└────
Send some data through a POST request:
┌────
│ (plz-see 'post "https://httpbin.org/post" :body "Hello World!")
│ (plz-see 'post "https://httpbin.org/post" :body (current-buffer))
│ (plz-see 'post "https://httpbin.org/post" :body '(file "./README.org"))
└────
Set a base URL to shorten `plz-see' calls in a given buffer:
┌────
│ (setq-local plz-see-base-url "https://httpbin.org")
│ (plz-see 'get "/image/jpeg")
│ (plz-see 'get "/status/404")
└────
Authenticate with username and password, read a bearer token from the
server response, and store it in the default headers for future use.
┌────
│ (progn
│ (setq-local plz-see-base-url "http://localhost:8080")
│ (setq-local user "user@example.com" pass "1234"))
│
│ (plz-see 'post "/login"
│ :headers '(("Content-Type" . "application/x-www-form-urlencoded"))
│ :body (format "username=%s&password=%s"
│ (url-hexify-string user)
│ (url-hexify-string pass))
│ :as 'json-read
│ :then (let ((buffer (current-buffer)))
│ (lambda (r)
│ (with-current-buffer buffer
│ (let ((token (alist-get 'access_token r)))
│ (setq-local plz-see-base-headers
│ `(("Authorization" . ,(concat "Bearer "
token)))))))))
│
│ (plz-see 'get "/authenticated") ; Yay!
└────
2 Alternatives
══════════════
There are several alternatives to this package, such as [restclient]
and [verb]. They are certainly more fully featured than `plz-see' and
arguably have a more user-friendly notation.
`plz-see' is geared towards those who prefer writing Elisp. It can
also be called from Eshell or IELM.
[restclient] <https://github.com/pashky/restclient.el>
[verb] <https://github.com/federicotdn/verb>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- New GNU ELPA package: plz-see - Interactive HTTP client,
Sacha Chua <=