GEOG 863
GIS Mashups for Geospatial Professionals

4.3 REST API

PrintPrint

Thus far in the course, the apps we’ve built have consumed map services hosted by Esri on their ArcGIS Online platform.  Another common source for map services is ArcGIS Server.  Many organizations, in both the private and public sectors, implement their own instances of ArcGIS Server as a means of publishing their geographic data.  The JS apps built by these organizations typically consume their own services. 

Esri makes it possible to consume their web services through the two primary architectural styles employed by web developers today: SOAP (Simple Object Access Protocol) and REST (REpresentational State Transfer). The SOAP protocol was developed by Microsoft in the 1990s and can be thought of as object-oriented programming in which the objects live on some web server and the programming code that manipulates them lives on some client machine. REST came later and has overtaken SOAP in popularity because of its ease of use. RESTful web services, as they are sometimes called, progressively expose their functionality through URLs that can be invoked almost like properties and methods. They send responses to the client applications in the form of XML or JSON.

One important aspect of using this framework is that information on the various REST web services published through an ArcGIS Server instance can be discovered through a series of pages called the Services Directory. This directory can be viewed in a web browser using a URL of the form <server name>/arcgis/rest/services.

Developers working with services published through ArcGIS Server do so using Esri’s REST API.   Esri has their own short (3-hour) web course that does a nice job of explaining how to use the REST API, so I’d like you to work through this course before we dive into the various types of map services available.

ArcGIS Resources: REST API

Esri Training: Introduction to the ArcGIS for Server REST API

Pay particular attention to the parts of the course dealing with layer services, as that is what we’ll be focusing on in this lesson.