Popularity
3.9
Growing
Activity
1.9
Declining
76
4
20

Programming language: Go
License: MIT License
Tags: Third-party APIs    
Latest version: v0.1.2

airtable alternatives and similar packages

Based on the "Third-party APIs" category.
Alternatively, view airtable alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of airtable or a related project?

Add another 'Third-party APIs' Package

README

Golang Airtable API

GoDoc Go codecov Go Report Mentioned in Awesome Go

A simple #golang package to access the Airtable API.

Table of contents

Installation

The Golang Airtable API has been tested compatible with Go 1.13 on up.

go get github.com/mehanizm/airtable

Basic usage

Initialize client

You should get your_api_token in the airtable account page

client := airtable.NewClient("your_api_token")

Get table

To get the your_database_ID you should go to main API page and select the database.

table := client.GetTable("your_database_ID", "your_table_name")

List records

To get records from the table you can use something like this

records, err := table.GetRecords().
    FromView("view_1").
    WithFilterFormula("AND({Field1}='value_1',NOT({Field2}='value_2'))").
    WithSort(sortQuery1, sortQuery2).
    ReturnFields("Field1", "Field2").
    InStringFormat("Europe/Moscow", "ru").
    Do()
if err != nil {
    // Handle error
}

Add records

recordsToSend := &airtable.Records{
    Records: []*airtable.Record{
        {
            Fields: map[string]interface{
                "Field1": "value1",
                "Field2": true,
            },
        },
    },
}
receivedRecords, err := table.AddRecords(recordsToSend)
if err != nil {
    // Handle error
}

Get record by ID

record, err := table.GetRecord("recordID")
if err != nil {
    // Handle error
}

Update records

To partial update one record

res, err := record.UpdateRecordPartial(map[string]interface{}{"Field_2": false})
if err != nil {
    // Handle error
}

To full update records

toUpdateRecords := &airtable.Records{
    Records: []*airtable.Record{
        {
            Fields: map[string]interface{
                "Field1": "value1",
                "Field2": true,
            },
        },
        {
            Fields: map[string]interface{
                "Field1": "value1",
                "Field2": true,
            },
        },
    },
}
updatedRecords, err := table.UpdateRecords(toUpdateRecords)
if err != nil {
    // Handle error
}

Delete record

res, err := record.DeleteRecord()
if err != nil {
    // Handle error
}

Bulk delete records

To delete up to 10 records

records, err := table.DeleteRecords([]string{"recordID1", "recordsID2"})
if err != nil {
    // Handle error
}

Special thanks

Inspired by [Go Trello API](github.com/adlio/trello)