Web Applications¶
A web application is a program that responds to HTTP requests. A web application can be used to provide a web site with interesting behavior. For example, a search on google.com forwards the parameters to a program that actually performs the search, and then responds with a list of (hopefully) relevant links.
Many web applications are designed to be a RESTful API, defined below.
REST¶
A REST (representational state transfer) API refers to a system of communication that is used to exchange information over the world-wide web. There are two important ideas behind a REST API. First, there are resources identified by a URL. The URL
is a resource for the home page of Wikipedia, while the URL
is a resource for the page on REST. The second are verbs that can be
used to interact with a resource. These verbs include GET
,
PUT
, POST
, and DELETE
. The GET
verb is used to
retrieve information from a resource; this is what happens when you
click on either of the links above. PUT
and POST
are used to
send information to a resource; this might be used to send search
terms to a search engine, or to send user information to a sign-up
page. What happens when certain verbs are used on certain resources is
entirely up to the web service providing them, although there are
conventions
that should be followed.
RESTful APIs¶
A RESTful API is simply an API that follows the REST architecture. Such an API can respond to requests with any type of information; it can return an HTML web page, a JSON document, or an image. We will create web services that return both statically and dynamically generated documents.
Example App¶
An example application can be found in the Git repository here.
This particular web application is written in Python, using a microframework called Flask and a templating engine called Jinja2. However, there are many choices of web frameworks in a variety of programming languages.