# Building a ROM plugin for Airtable

**URL:** <https://discourse.rom-rb.org/t/building-a-rom-plugin-for-airtable/495>\
**Category:** Uncategorized\
**Created:** [January 9, 2022, 3:12pm UTC](https://discourse.rom-rb.org/t/building-a-rom-plugin-for-airtable/495 "2022-01-09T15:12:58Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![pmackay](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.rom-rb.org/pmackay/32/219_2.png) [@pmackay](https://discourse.rom-rb.org/u/pmackay)\
**Post date:** [January 9, 2022, 3:12pm UTC](https://discourse.rom-rb.org/t/building-a-rom-plugin-for-airtable/495/1 "2022-01-09T15:12:58Z")

</div>

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](https://github.com/rom-rb/rom-http/tree/v0.8.0), 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](https://github.com/rom-rb/rom-http/tree/v0.8.0#extending).
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 🙂

(It could be possible to detect relation schemas automatically using the [Meta API](https://airtable.com/api/meta), but that might be for future improvements!)

---

<div class="post-metadata">

**Author:** ![solnic](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.rom-rb.org/solnic/32/279_2.png) [@solnic](https://discourse.rom-rb.org/u/solnic)\
**Post date:** [January 10, 2022, 5:57am UTC](https://discourse.rom-rb.org/t/building-a-rom-plugin-for-airtable/495/2 "2022-01-10T05:57:20Z")

</div>

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 🙂

---

<div class="post-metadata">

**Author:** ![jedschneider](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.rom-rb.org/jedschneider/32/258_2.png) [@jedschneider](https://discourse.rom-rb.org/u/jedschneider)\
**Post date:** [February 23, 2022, 8:54pm UTC](https://discourse.rom-rb.org/t/building-a-rom-plugin-for-airtable/495/3 "2022-02-23T20:54:21Z")

</div>

I am looking into using air table as a possible integration in the near future. Please keep us posted if you release something.
