nickysn e83f3d2978 * updated all the remaining makefiles that 'fpcmake -r' missed 10 年之前
..
examples 5a49d4e7b1 * Workaround for 2.6.4/i386 bug when setting dynamic arrays using RTTI 10 年之前
src 473adb5725 * Fix memory leak (bug ID 28157) by nomerelogic 10 年之前
Makefile e83f3d2978 * updated all the remaining makefiles that 'fpcmake -r' missed 10 年之前
Makefile.fpc ac87da7c42 * Filter the Makefile's unit searchpaths from the fpmake command line. 10 年之前
README.txt 6755c36a7b * Added readme 10 年之前
fpmake.pp 5955e67c83 MorphOS: enabled sockets unit, and a bunch of network-related packages which depends on it 10 年之前

README.txt

This package offers support for the Google REST APIs.

Each Google Service API is a REST API that offers multiple resources.

All Google Service APIs are described in the Google Discovery service:
https://developers.google.com/discovery/
The Google APIS use JSON, JSON-Schema and OAuth2 to do their work.

These services can be converted to a object pascal implementation with the
googleapiconv program (see directory examples/generator)

It will fetch the JSON describing a REST API from the Google discovery server:

googleapiconv -s calendar/v3 -o calendar.pp

It can also download the rest description through an URL:

http://www.googleapis.com/discovery/v1/apis/calendar/v3/rest -o calendar.pp

It can also use downloaded versions of the JSON files.

The program has many options, running it without options gives an overview.

A Google API breaks down in 4 parts, all of which have a base class in the
following units:

TGoogleClient - unit googleclient
---------------------------------

This is a simple component that handles the transport and authorization,
it needs a TFPWebClient descendent (such as TFPHTTPWebClient) and a
TFPOauth2Handler descendent to communicate with Google servers.
These 2 classes are part of fcl-web, a synapse-based TFPWebclient descendant is
available separately.

TGoogleAPI - unit googleservice
-------------------------------

There is a descendent of this component for each Google service API, which
handles all calls to the service. It uses a TGoogleClient component to handle
actual communication.

This class contains a method called ServiceCall which is used by all
resources in the API to execute service requests. It will use the client to
do the actual HTTP request.

Each unit google*.pp in this package contains a single component that
descends from the TGoogleAPI component.

TGoogleResource - unit googleservice
------------------------------------

For each resource exposed by the service, a descendent of this class is generated
that has all the methods for that resource, as described in the REST service description.

TGoogleResource uses an instance of the TGoogleAPI class to handle all calls to
the service.

Each API unit google*.pp in this package contains one or more TGoogleResource
descendents, used in the API of that unit.

TGoogleBaseObject - unit googlebase
-----------------------------------

For each data type used in the API, a descendent of this class is used: it is a
descendent of TBaseObject (unit restbase, part of fcl-web) and handles
loading from and saving to JSON.

Unit googlediscoverytopas
-------------------------

This unit contains the code to convert a Google REST API description to a
object pascal unit.

Authentication happens using OAuth2, the units for this are available in the
fcl-web package (fpjwt, fpoauth2, fpoauth2ini).

Example programs for Lazarus will be published separately.