Building a ROM plugin for Airtable

I’m looking at using ROM with Airtable. Each “base” in Airtable has a clear REST API that is based on the structure of the tables added to the base. Based on the docs from the rom-http 0.8.0 tag, I can see 3 possible ways to approach this:

  1. Use rom-http directly. Define Airtable JSON handlers and Relation classes in the application.
  2. Create rom-airtable gem, using extension classes from rom-http similar to this.
  3. Create a rom-airtable gem independent of rom-http.

I’m interested in creating a separate gem, so 2 seems the most obvious approach. It could also be good to somewhat encapsulate the airtable REST API from the client, so rather than passing the uri, the config takes a base ID and API key.

Any feedback on this or other approaches to try would be most welcome :slight_smile:

(It could be possible to detect relation schemas automatically using the Meta API, but that might be for future improvements!)

Yes 2 is a good option. The purpose of rom-http is to be the “base” gem for other adapters that implement support for specific HTTP APIs :slight_smile: