Classics, data, Uncategorized

If You Want Something Done, Part 3: Ovid API? Ovid API!


TL;DR Hey presto, there’s an Ovid API now! It’s on Heroku because I don’t feel like pointing any respectable URLS at it this week.

I did get a head start on the actual URLs at the beginning of the week, which was good, because as I predicted, the majority of my weekend time was taken up by actual deployment, i.e. things I thought I’d never have to worry about again like static files and such. These are the problems I’d prefer not to have to solve, hence my departure from doing them professionally, but them’s the breaks when you’re a one-woman show.

The URL Question

Initially, I wanted to recreate the way a person would cite the poems, in URL form. Initially, I thought of the way you’d cite “Ovid’s Amores, Book 1, Poem 1, line 12″ shorthand for an article. So “Ov. Am. 1.1.12″ would become

/ovid/amores/1/1/12.

At first I felt kind of bad about this, but then was reviewing Django’s URL dispatcher and I was reminded that they use month/day/year URLS in their example, and frankly I don’t see how this is much different.

But also, that kind of URL  isn’t standard. The standard(ish), longer format is more like:

/authors/ovid/works/amores/books/1/poems/1/lines/1

Since that version was the default of the nested URL app, I went with it for now. I still feel kind of bad about it for some reason, probably because you’d normally expect unique id’s in the number fields, when of course “Book One” is anything but unique. And this is the place for a sincere shoutout to the two people who weighed in on the urls, and helped me troubleshoot the plan by asking stuff like, “would there ever be a use case for calling all of the Poem 5’s?” No, there isn’t, but that was a helpful question to ask.

Next Steps

Now that the durned thing is deployed, I have to decide how much I care about the thing I had to do wrong (committing static files) and how much time I want to spend on that type of stuff versus improvements I do care about.  And, eventually, of course, my bot that will use this API. And look, we haven’t even gotten to the translations yet!! I have no idea what that’s going to look like. Oy.

So now the real work begins.