Virgo API Overview


The Virgo API is the main interface to all Virgo application logic and data. It is designed to support both customer-facing applications developed by IGS as well as third party applications and integrations.

The API is based on REST principles. Since REST is an architecture pattern rather than a strict protocol or method, any ambiguity in the design approach will be resolved by reviewing common practices and weighing against the needs of the developers building and using the API. There is no formal specification for REST.

Some of the design goals and constraints include:

  1. Common verbs and their definitions for this implementation are GET (read), POST (create), PUT (update), and DELETE (delete).
  2. The API does not try to support all possible verbs for every resource. It only supports the verbs needed to meet current design requirements. The API will be enhanced as required to support additional features.
  3. When returning data for a resource, the API will include links for child resources and, optionally by query parameter, include the child data to avoid unnecessary requests.
  4. Protect the system and private/personal data using authentication and authorization.
  5. Require secure connections (SSL/TLS).
  6. Use standard HTTP response status codes and provide detailed error information when appropriate.
  7. By default, data will be returned as JSON. All examples in this document will use the JSON output.