I just finished reading REST in Practice as my first* introduction to REST APIs. I found the book quite enlightening, but am left with one nagging question, and Google has yet to clear it up. This question gets close, but the answers fall short of answering my specific question, which is...
Given some hypertext markup for consumption with a RESTful API, such as this (in JSON-LD):
{
"http://schema.org/name": "Manu Sporny",
"http://schema.org/url": { "@id": "http://manu.sporny.org/" },
"http://schema.org/image": { "@id": "http://manu.sporny.org/images/manu.png" }
}
What is the function of the URL/URI/IRI as a "key" name? (Now I know that JSON-LD--with @context
--and other markup languages, allow ways to generalize these IRIs-as-keys to be more human friendly, but that doesn't change the nature of the question.)
If I try to break my question down into smaller pieces, I come up with something like this:
- Specifically, what is expected to live at the endpoint represented by that IRI?
- All the discussion talks about disambiguating key names. But how is
http://schema.org/name
less ambiguous thanname
? - Is there some (theoretical?) centralized repository of key types that developers are expected to reference, so that these key names all point to some more-or-less common definition?
I hope this question makes enough sense to be answerable. I'm still in a bit of a "I don't know enough to ask what I don't know" state on this particular point.
*I, like many, thought I already knew what REST was, and believed that my previous, POST-only CGI scripts were representative of REST APIs...