1 Introduction

The Google API Discovery service is a web service that tells you about web services. Each web service is described using a JSON format "discovery document", which describes such things as the resources, methods, and parameters for the web service. It is possible to use this document programatically to create Racket functions that will make HTTP requests to the web service, as well as to make documentation for the service. This is a great idea. And to be appropriately meta, one of the services you can discover with the discovery service, is the discovery service itself.

This library provides two approaches to using the discovery service with Racket:

1. "Require" the discovery document like a source file. The wrapper functions are created at compile time. The discovery documents are not used at runtime and need not be shipped with your application; essentially they are source code just like your .rkt files.

2. Dynamically load and parse the discovery docuemnt (from a local file or from the Discovery web service) at runtime.

Unless you need runtime dynamism, the first approach is easier, more efficient, and simpler for distributing your application.

The functions created by either approach are identical in terms of the arguments they accept and the value they return. As a result you should be able to change approaches without modifying much of your code.