Sourcing multiple tables of data from an API

I’m new to Glide and so far, I think it’s amazing. But I’m a bit stuck understanding how to implement my use case.

I’m making an app about a group of faculty. There’s a website called ORCID that stores tons of information about faculty (if they put it there, of course) and it’s accessible via a public API. What I want to do is to be able to include the ORCID information on each faculty member’s page (the detail click-through from a card collection) — and that this information would be kept current (on some refresh schedule).

I’ve worked in the world of traditional app development, so I understand how this would be implemented in that world, but I can’t get my head around how to do it in Glide. These are the things I’m puzzling over:

  1. How do I get the faculty data from ORCID into Glide when the data for each faculty member includes collections (of education experiences, employment experiences, publications, grants, etc)? I could easily make a table for each of these types of collections, but I don’t understand how to populate the table with those rows from each faculty member. (I assume it’s pretty simple once I have the different tables to filter the collections to each member on their page, though?)

In traditional app development, you can just get data on the backend without it having anything to do with anything someone does on the app, like a button or whatever, and I don’t understand how to do this in Glide — or even if it’s possible?

  1. Assuming it is all possible to get all this information, how do I control the refresh of all the relevant data?

Guidance appreciated.

Thanks,
Jessica

How does each faculty member’s info relate to the ORCID info? Is it through a record ID or something like that? Do you have access to that ID?

If you do, I would think that you can make an API call on the row level, to pull back the information related to each row, by the ID.

Collections are a bit tricky though. Generally, if a record in table A has multiple items related to it, in publications, for example, you would expect multiple records in a table B and a relation from table A to table B to display those records, but that might be hard to do for everyone at once with an API call.

A helper table might be needed here, where you use what we call the Miracle Method to transpose the collection.

1 Like

Thanks for your reply @ThinhDinh. I absolutely have access to the ID, so getting the full record for each person is trivial.

Transposing a collection is a good tool to have in the toolbox, so thanks for sharing that. After I wrote this request, I began to wonder if it might not be easier to deal with the initial data call in Airtable rather than in Glide, simply because I already know how to use a script to create as many rows as necessary in a given table based on one action.

Correct me if I’m wrong, but with the Miracle Method, it seems to be applicable to a situation where the data you are transforming is a fixed (pre-determined) number of columns/rows. With my data, one person may have zero publications, someone else may have dozens…

1 Like

You just need to add enough rows in your Helper Table to cater for the maximum number of expected records.

1 Like