Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Programmatic API #82

Open
btalberg opened this issue Dec 16, 2021 · 8 comments
Open

Programmatic API #82

btalberg opened this issue Dec 16, 2021 · 8 comments
Assignees

Comments

@btalberg
Copy link

Are there plans to offer programmatic access to dictionaries? This could be used to more seamlessly build external applications that leverage the language. The use case envisioned is to generate language learning materials for NGO/non-profit schools in the communities where these languages are spoken.

@AnnaLuisaD
Copy link
Collaborator

Thanks for this excellent question! We will keep this in mind for future training and planning. The question boils down to: does the community that built the dictionary want to see the content being used in another format or educational context? While we can't just hand out permission to use all the data (since it belongs to each community), we could potentially work on a case-by-case basis to allow access in the future.

Keep in mind that we also offer the "Export" function for any community that builds a dictionary on the platform. It's accessible to dictionary managers. if there is a specific dictionary you want access to, leave us a note and we can consider it based on the wishes of the people who built it.

@btalberg
Copy link
Author

btalberg commented Jan 6, 2022

That makes sense @AnnaLuisaD, thanks for the insight. We plan to manage a number of our own dictionaries and the export functionality will work for us in the meantime. I envision it will be a bit more work to maintain though (ingesting and storing the data). If you did add support for API based access, offering the functionality even just for owned dictionaries would be nice.

@AnnaLuisaD
Copy link
Collaborator

Hi Ben! Margarita contacted me today. your team still has questions along these lines, correct? I can set up a meeting for you, me, Margarita and Diego so we can go over these types of questions

@btalberg
Copy link
Author

That'd be great Anna Luisa, I'd absolutely be open to meeting!

@jacob-8 jacob-8 self-assigned this May 2, 2022
@jacob-8
Copy link
Collaborator

jacob-8 commented May 4, 2022

@btalberg can you tell us the specifics of what you need for use in external applications? An endpoint to fetch data for one entry at a time? A list of entry ID's? Or something more robust like the current data for the entire dictionary?

With our platform, it would be very easy to add an endpoint for API purposes (see https://kit.svelte.dev/docs/routing#endpoints-standalone-endpoints) but the important question is how should we go about securing it? Firebase makes authentication within our web app very easy, but I don't know much about how we could leverage it's built-in authentication for external requests. Do you have any propositions and would you be willing to contribute the endpoint and authentication?

Do note that Firebase Cloud Functions also offers HTTP endpoints, but I would prefer SvelteKit endpoints for ease of iterating and testing if possible. To test the Cloud functions they must either be deployed or emulated using Firebase' Java based emulator (too much friction = painful to update).

@AnnaLuisaD
Copy link
Collaborator

I am inviting linguist and web developer Chad Peterson to a group meeting in June because said he might want to volunteer on helping us create an API in July before he starts grad school.

@btalberg
Copy link
Author

@jacob-8 - I missed your comment Jacob, sorry for the late reply. What would help our use case would be a Read Only API. And something more robust that would let us search for entries and/or fetch entries by <<Language>> Gloss or Part of Speech.

I don't have any advice on the auth mechanism, but if I have time, I'll consider cutting a branch and seeing what I can come up with.

@AnnaLuisaD
Copy link
Collaborator

hi @btalberg :) I sent you an invitation to take part on a Zoom call on June 13th at 7:30pm on this topic. If you can't make it, totally understandable! I can keep you apprised if you want to help take a look at what we are doing on this topic.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Preparing
Development

No branches or pull requests

3 participants