acalejos
Merquery - Interactive HTTP Toolkit Inspired by Postman
I’m excited to share Merquery, a new library I’m working on to bring interactive HTTP tooling to Elixir.
This project started off as a way to practice making Livebook Smart Cells, where I wanted to implement a Postman-Styled Smart Cell. As I made progress I realized that there’s a lot of potential in this tool for tighter integration with Elixir.
Merquery currently consists of 2 components:
MerquerySmart Cell that provides an interactive way to work with HTTP requests, akin to Postman- A
mixtask –mix merquery.generate– which introspects on your router and generatesMerquerysmart cells pre-filled with the information relevant to each route.
Merquery takes advantage of the Livebook ecosystem to have built in support for serialization and secret storage, so you can save queries for later usage and use keys from your Livebook Hub token vault.
It also can be used to generate source code just as all Smart Cells do. You can use Merquery as a learning tool to learn how to use Elixir HTTP clients.
The library is currently in its infancy, but below are some ideas I have going forward.
These are just some ideas for features I currently have, but are subject to change:
- Finish basic REST operations support
- Registering custom plugins
- Improve
mix merquery.generate- Allow customized parameters for routes, etc.
- Add Table of Contents at Top
- Migrate to TailwindCSS and distinctive design palette
- Req plugin discoverability - Host a location where Req plugins can be submitted for others to
discover for use withMerquery - Livebook routes instant deploy - Have a mix task (e.g.
mix merquery.deploy) to automatically
deploy the generated livebook frommix merquery.generate - Support other HTTP clients and their unique features (HTTPoison, Tesla, etc. )
- Move Vue to Composition API and breakout components to SPCs
Any feedback is much appreciated!
Most Liked
acalejos
I’ve added some more features to this as well as fixed several bugs. Currently still just on GitHub Main
Highlights:
- Import / export support with cURL thanks to the new CurlReq library
- Automatically add plugins to the setup cell rather than requiring you to copy / paste
- Variable input type so now you can param / header value to the value of an existing bound variable
Demos:
https://x.com/ac_alejos/status/1798180009300926797
https://x.com/ac_alejos/status/1798199529285779929
https://x.com/ac_alejos/status/1798920380704510460
jonatanklosko
@acalejos cool stuff!
Move Vue to Composition API and breakout components to SPCs
FTR we’ve recently started using an actual bundler setup in Kino and moved towards React for smart cells, with Tailwind. There is a @livebook/kino-bundler package that encapsulates the basic setup (including Livebook Tailwind config). You can see kino Remote execution cell or kino_bumblebee Task cell for examples. Still, the idea is that you can use whatever setup and framework you prefer, I am mentioning this just for completeness : )
krasenyp
Please, don’t say CRUD/REST. They’re not equivalent. Quite the opposite, actually.
Popular in Announcing
Other popular topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #javascript
- #code-sync
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #advent-of-code
- #elixirconf-us
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #performance








