Intern'd functions from an .edn are incredible

This page summarizes the projects mentioned and recommended in the original post on /r/Clojure

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • twttr

    Twitter API client for Clojure supporting REST and Streaming endpoints

    Then I started looking at HTTP clients in Clojure and found https://github.com/chbrown/twttr which, frankly, blew my mind. The author defines all the API endpoints in an .edn file which conforms with (I think?) the Ring protocol for requests. These are consumed and each is intern'd to generate functions based on the API endpoints path. For example, /v1/tweet/something/dumb becomes tweet-something-dumb. These intern'd functions wrap a generalized function that preps the necessary fields and calls an aleph.http request function.

  • aws-api

    AWS, data driven

    Check out https://github.com/cognitect-labs/aws-api which works in a similar way :)

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

  • clj-gapi

    Clojure Google Web Service API Client

    Yes, this is the kind of stuff that I dig too. Ian Barber did this in 2013 with his wrapper for the Google API. The cool thing is that instead of hard-coding the API in a configuration file, he generated that too via Google's discovery API (which returns the API catalog). I don't know if he was the first to do that, but that's the earliest instance I can remember. That library was and remains obscure (a mere 25 stars as of this day), which always kind of bummed me out, but the same could be said at the time for Clojure itself.

  • openapi-generator

    OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (v2, v3)

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts