-
Notifications
You must be signed in to change notification settings - Fork 194
API for Beginners
Put simply, an API ( Application Programming Interface) is a formal line of communication between two programs. A REST API is one that utilizes inherent features of the Web to enable communication between a client and a server. It's important to note that APIs aren't designed to be exposed to you, the end user, except through intermediary programs. Remember this when you're experimenting directly with the API; otherwise you may get frustrated.
Omeka's REST API provides an endpoint against which you can query, create, update, and delete Omeka resources. Your Omeka endpoint is the URL to your Omeka website followed by /api
, like this:
http://yourdomain.com/api
You can see which resources are available by appending /resources?pretty_print
to your endpoint, like this:
http://yourdomain.com/api/resources?pretty_print
Here you are getting the /resources
resource as a JSON object containing all the available resources and other information about them. (?pretty_print
is helpful to get back nicely formatted JSON, but is not necessary.)
In the above response you'll notice that all resources have at least one action. These actions, while not important to a beginner, correspond to HTTP request methods. These methods are central to REST, and you should know what they do:
-
GET
gets one or more representations of a resource; -
POST
creates a new resource and returns the representation of the newly created resource; -
PUT
modifies an existing resource and returns the representation of the newly modified resource; -
DELETE
deletes an existing resource.
Until you start building your own API client, you won't need to make POST
, PUT
, or DELETE
requests, but GET
is well suited for beginners because you can run them directly from your Web browser, as you probably did above with /resources
.
A representation, in this case, is a JSON object that represents an Omeka resource. In other words, you are not getting a resource itself, but rather a representation of it. This is very much like viewing an item on a Omeka website: the item show page is not the item itself, but a representation of the item.
Every Omeka website comes with the following resources, most of which should already be familiar to you as an Omeka user:
/collections
/items
/files
/item_types
/elements
/element_sets
/tags
One of the powerful features of the Omeka API is that plugins can add more resources if they wish. If they do, you'll see them on the /resources
resource.
Let's take a look at the /items
resource by making a GET
request to the following URL using your Web browser:
http://yourdomain.com/api/items
Assuming there are already items added to Omeka, you'll see a JSON array of item representations, each with an "id" (the item ID), a "url" (the direct URL to that item), and other metadata about the item. Copy that URL to your Web browser and make another GET
request (you'll first need to remove backslashes from the URL, which were a necessary part of JSON formatting):
http://yourdomain.com/api/items/:id
Where :id
is the item ID. You'll see the same JSON representation of the item, but by itself. This URL is the item's canonical URL, that is, it is an unambiguous and permanent link that represents the item itself.
So far you've only been using the GET
method to get representations of resources. To experiment with POST
, PUT
, and DELETE
you'll need to use a program that is capable of sending those requests. Most modern browsers have plugins that do this in a user-friendly way:
If you're comfortable adding, modifying, and deleting Omeka resources, read the API documentation and start making requests!