acalejos

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:

  • Merquery Smart Cell that provides an interactive way to work with HTTP requests, akin to Postman
  • A mix task – mix merquery.generate – which introspects on your router and generates Merquery smart 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 with Merquery
  • Livebook routes instant deploy - Have a mix task (e.g. mix merquery.deploy) to automatically
    deploy the generated livebook from mix 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

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

jonatanklosko

Creator of Livebook

@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

krasenyp

Please, don’t say CRUD/REST. They’re not equivalent. Quite the opposite, actually.

Where Next?

Popular in Announcing Top

tmbb
I’ve published the first version of my Makeup library. It’s a syntax highlighter for Elixir in the spirit of Pygments, Currently it highl...
New
sorentwo
Hello! tl;dr Announcing Oban, an Ecto based job processing library with a focus on reliability and historical observability. After spen...
985 42920 311
New
ityonemo
Currently just starting out on a new mini-project - getting zig NIFs to run in elixir. https://github.com/ityonemo/zigler The idea here...
New
tfwright
After working on it for a couple of months and using it in production for most of that time, today I’ve released LiveAdmin, a LiveView ba...
New
bryanjos
Hi, I wanted share a small library we at Revelry Labs made for rendering react components from the server side. There are instructions fo...
New
Eiji
ExApi is a library that I’m developing now and hope release soon This library will allow to: list all apis list all api implementation...
New
wojtekmach
Hey everyone! Req is an HTTP client for Elixir that I’ve been working on for quite some time. There is already a lot of HTTP clients out...
New
michalmuskala
Another small library today. PersistentEts Hex: persistent_ets | Hex GitHub: GitHub - michalmuskala/persistent_ets · GitHub Ets table ...
New
Flo0807
Hello everyone! I am excited to share our heart project Backpex with you. After building several Phoenix applications, we realized that...
New
achempion
Hi, I would like to tell about my initiative to further maintain and develop Waffle project which is the fork of Arc library. The progre...
New

Other popular topics Top

vertexbuffer
Hello, can anybody help here..? I have a list of players and I what to delete an element, but every for loop the list is reverting to ori...
New
Darmani72
If I have a post route which an argument: post /my_post_route/:my_param1, MyController.my_post_handler How would get the post params ...
New
Harrisonl
We have an ECS cluster with 4 services, where each task joins a single cluster, via discovery ECS discovery service. Currently when I de...
New
electic
Hi, I am new to Elixir. I am trying to use the DateTime component to insert a date into MySQL however the there seems to be no way to fo...
New
chrismccord
This release brings a number of exciting features, including integration with the new Phoenix LiveDashboard and Phoenix LiveView. There h...
New
Qqwy
Original source of discussion: This topic on the Pragmatic Programmers’ Functional Web Development with Elixir, OTP, and Phoenix forum. ...
New
KronicDeth
Elixir plugin for JetBrain’s IntelliJ Platform (including Rubymine) This is a plugin that adds support for Elixir to JetBrains IntelliJ...
289 36128 110
New
rms.mrcs
Hi, I need to transform a list of numbers into a map where the keys are the indexes and the values are the original values of the list. ...
New
joaquinalcerro
Hi there, I am working with Ecto-Postgresql and I need to call all of the records from a specific table but the table has 40,000 records...
New
jononomo
For some reason my phoenix channels are working for me in my local dev environment, but as soon as I deploy via Docker, I get a 403 error...
New

We're in Beta

About us Mission Statement