PORTAL-DOORS System Web Service


A comprehensive paper describing PDS, entitled A Distributed Infrastructure for Metadata about Metadata: The HDMM Architectural Style and PORTAL-DOORS System, was published 2010 June 1 online in the journal Future Internet. More recent information can be found in the documents available at PDS Papers and Presentations. These reports contain explanations of the concepts, models, schemas, URL and querystring designs used by PDS.

Help on the web service API available at this site (built with Microsoft ASP.Net 4 MVC 3 and URL Routing) can also be obtained by appending the querystring key "help" to any URL derived from the site base address. Additional URL routing information can be obtained by appending the querystring key "debug" to the URL. These keys can be used independently or in combination as shown in the following examples:

Help information displayed by use of the "help" querystring key provides the syntax for all URLs together with live examples that demonstrate each URL. Debug diagnostics displayed by use of the "debug" querystring key provide the defaults and constraints for all routes together with a live matching test of the requested URL against all routes that shows whether each route is "found", "matched", or "unmatched". Note that the "found" route is the first "matched" route.

Querystring key-value pairs valid for all PDS web service URLs include:

  • Logical switches
    • "ef": echo format with ef={1|0} or ef={true|false} turns on/off response that includes a copy of the request URL
    • "vf": verbose format with ef={1|0} or ef={true|false} turns on/off response with more detailed information
  • Integer values
    • "lc": list count with lc={value} sets maximum number of records returned in the response
  • String switches

Querystring keys valid for PDS find/search URLs include:

  • "nam": nam={value} filters records on the EntityName field
  • "nat": nat={value} filters records on the EntityNature field
  • "label": label={value} filters records on the EntityLabel fields (either the EntityCanonicalLabel or any of the EntityAliasLabels)
  • "ptag": ptag={value} filters records on the EntityPrincipalTag field
  • "stag": stag={value} filters records on the EntitySupportingTag fields

for which "find" performs an exact case-sensitive lookup whereas "search" performs a case-insensitive partial match. A future version of this web service will enable additional filters on other fields.