長い前置き
僕は普段、HTTPでのリクエストの送信の検証には、Emacsの拡張の一つであるrestclientを使っている。これは以下のように書く事で、HTTPリクエストを送信できるというものだ。
GET http://example.com
<!doctype html><html lang="en"><head><title>Example Domain</title><link rel="icon" href="data:,"><meta name="viewport" content="width=device-width, initial-scale=1"><style>body{background:#eee;width:60vw;margin:15vh auto;font-family:system-ui,sans-serif}h1{font-size:1.5em}div{opacity:0.8}a:link,a:visited{color:#348}</style></head><body><div><h1>Example Domain</h1><p>This domain is for use in documentation examples without needing permission. Avoid use in operations.</p><p><a href="https://iana.org/domains/example">Learn more</a></p></div></body></html>
<!-- GET http://example.com -->
<!-- HTTP/1.1 200 OK -->
<!-- Date: Sun, 28 Jun 2026 03:12:50 GMT -->
<!-- Content-Type: text/html -->
<!-- Transfer-Encoding: chunked -->
<!-- Connection: keep-alive -->
<!-- Server: cloudflare -->
<!-- Last-Modified: Sat, 27 Jun 2026 11:26:45 GMT -->
<!-- Allow: GET, HEAD -->
<!-- Accept-Ranges: bytes -->
<!-- Age: 8203 -->
<!-- cf-cache-status: HIT -->
<!-- CF-RAY: a129831889de25ff-NRT -->
<!-- Request duration: 0.042607s -->割と便利だし、機能的にも必要十分なため重宝している。EmacsにはこのようなHTTPクライアントにはいくつかの実装がある。
- http.el (https://github.com/emacs-pe/http.el)
- httprepl.el (https://github.com/gregsexton/httprepl.el)
- restclient.el (https://github.com/pashky/restclient.el) ※原作者のリポジトリ、現在はアーカイブ。
- verb (https://github.com/federicotdn/verb)
もしかしたら他にもあるかも知れない。これらはもう開発や保守が停止してしまっているものもある(verbは活発そうだった)。ただコミットがないからといって、パッケージとして死んでいるとは限らないとも思う。目的を達成し枯れた状態であれば、修正されたりしないからだ。とても高品質で、当初の目的を達成し、非の打ち所がないのかもしれない。
restclientはというと、原作者(pashky)のリポジトリからフォークされ、Emacs Orphanageによって管理されている。
Emacs Orphanageとはパッケージの延命を目的とした団体で、作者によるメンテナンスが停止したパッケージを引き取り限定的に保守などをしている。たいへんにありがたい。ちなみにOrphanageとは孤児院という意味だ。
本題
前置きはここまでにしよう。
先日、HTTPに新しいメソッドとして QUERY メソッドが追加された1。新しいHTTPメソッドをrestclientがサポートしているか確認したところ、どうやらまだサポートしていないようだった。
しばらく待っていれば誰かが修正してくれるだろうとも思う。いや、本当にそうだろうか。Emacs Orphanage が管理を引き継いでいる。修正されないまま、時だけが過ぎていく可能性もある。もしかしたらrestclientを使っているのは、世界で僕だけかもしれない。そんなことはさすがにないだろうけれど、ありえないとも言い切れなかった。
そこでrestclientに QUERY メソッドの対応をして、プルリクエストを送った。
https://github.com/emacsorphanage/restclient/pull/11
これがマージされれば、restclientで以下のようなHTTPリクエストを送信できるようになる。あとコードハイライトも適切にされる。
QUERY http://example.com
Content-Type: application/json
{
"limit" 10
}
なお、ob-restclientはrestclientの機能をそのまま利用しているので、ob-restclientも同様にQUERYメソッドがサポートされる。
2026-06-28追記
無事、マージされた。対応してくれたpederkl、ありがとう。そして Emacs Orphanage にも感謝を。