I recently wrote a package for this:
It's inspired on the restclient package, but tries to improve upon some of its core ideas. The requests are written in an Org buffer, where requests found in higher level headings inherit properties from the ones in lower levels. This way, you can avoid writing common properties ...
One can use use-package. In a file (which could be your init file, but doesn't have to be):
'("melpa" . "https://melpa.org/packages/") t)
(seq-remove (lambda (element)
(equal "gnu" (car element)))