GithubHelp home page GithubHelp logo

at88mph / opencadc-registry-client Goto Github PK

View Code? Open in Web Editor NEW
0.0 3.0 1.0 769 KB

Registry client for CADC and CANFAR services.

License: GNU General Public License v3.0

JavaScript 100.00%
ivoa registry

opencadc-registry-client's Introduction

opencadc-registry-client (1.2.2)

Registry client for CADC and CANFAR services.

Download

<script type='application/javascript' src='registry-client.js'></script>

Optimized

You may optionally build a webpack (minified) version for a 3.6KB file: :: npm install npm run dist

This will produce a dist/registry-client.min.js file.

API

var registryClient = new Registry()

// Or a custom registry location
var registryClient = new Registry({baseURL:'http://www.mysite.com'})

Methods

Function Argument Description

@return {Promise} getServiceURL(resourceURI, standardURI, interfaceURI, authType)

{String} resourceURI

{String} standardURI

{String} interfaceURI

{String} authType

The Resource URI to look up from the reg/resouce-caps endpoint

The Standard ID to look up.

The URI of the interface type to get.

What type of auth to look up ('basic', 'cookie', 'tls'). The 'tls' value will require a client certificate. Optional, defaults to null.

@returns {Promise} getCapabilityURL(uri) {String} uri The resource URI to look up.
@returns {Promise} getApplicationURL(resourceURI)

{String} uri

The resource URI to look up from the /reg/applications endpoint

@returns {Promise} getApplicationEndpoints()

{} <none>

Promise returns the list of available applications from /reg/applications endpoint, listed by resourceURI

Obtaining a Service URL

var registryClient = new Registry()

// Look up the TAP service with cookie authentication.
registryClient.getServiceURL(
        'ivo://cadc.nrc.ca/tap',
        'ivo://ivoa.net/std/TAP',
        'uws:Sync',
        'cookie'
      )
      .then(function(serviceURL) {
        // Hit the serviceURL
      }).catch(function(err) {
        console.error('Error obtaining Service URL > ' + err)
      })
var registryClient = new Registry()

// Look up the TAP service with TLS authentication (HTTPS).
registryClient.getServiceURL(
        'ivo://cadc.nrc.ca/tap',
        'ivo://ivoa.net/std/TAP',
        'uws:Sync',
        'tls'
      )
      .then(function(serviceURL) {
        // Hit the serviceURL
      }).catch(function(err) {
        console.error('Error obtaining Service URL > ' + err)
      })
var registryClient = new Registry()

// Look up the TAP service with Basic authentication (auth-sync endpoint).
registryClient.getServiceURL(
        'ivo://cadc.nrc.ca/tap',
        'ivo://ivoa.net/std/TAP',
        'uws:Sync',
        'basic'
      )
      .then(function(serviceURL) {
        // Hit the serviceURL
      }).catch(function(err) {
        console.error('Error obtaining Service URL > ' + err)
      })

Obtaining an insecure Service URL

This is only useful (and recommended) for Service URLs that may gain some performance by calling an HTTP URL rather than suffer the potential latency of HTTPS, such as data uploads and downloads.

var registryClient = new Registry()

// Look up the TAP service with Basic authentication (auth-sync endpoint).
registryClient.getServiceURL(
        'ivo://cadc.nrc.ca/tap',
        'ivo://ivoa.net/std/TAP',
        'uws:Sync',
        'basic',
        true // Prefer insecure.
      )
      .then(function(serviceURL) {
        // Hit the serviceURL
      }).catch(function(err) {
        console.error('Error obtaining Service URL > ' + err)
      })

Obtaining a Capability URL

Note that capability documents can vary. As of version 1.2.0, the library supports both the multiple <interface /> style each with its own <accessURL /> and <securityMethod />, as well as the newer TAP 1.1 version that will produce a single <interface /> with multiple <securityMethod /> tags. :

var registryClient = new Registry()

// Look up the TAP service capabilities.
registryClient.getCapabilityURL(
        'ivo://cadc.nrc.ca/tap'
      )
      .then(function(capabilityURL) {
        // Hit the capabilityURL and see the XML
      }).catch(function(err) {
        console.error('Error obtaining Capability URL > ' + err)
      })

Obtaining an Application URL

var registryClient = new Registry()

// Look up the TAP service capabilities.
registryClient.getApplicationURL(
        'ivo://cadc.nrc.ca/gms'
      )
      .then(function(applicationURL) {
        // Store the variable for use later in your code
      }).catch(function(err) {
        console.error('Error obtaining Application URL > ' + err)
      })

Obtaining all Application URLs ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

For some cases, getting the entire list of application endpoints at once is more practical than one call at a time. :

var registryClient = new Registry()

// Look up the TAP service capabilities.
registryClient.getApplicationsEndpoints(
        'ivo://cadc.nrc.ca/gms'
      )
      .then(function(applicationURLList) {
        // Parse out the key=value pairs, matching resource URIs
        // against keys
      }).catch(function(err) {
        console.error('Error obtaining Application URL list > ' + err)
      })

opencadc-registry-client's People

Contributors

at88mph avatar dependabot[bot] avatar hjeeves avatar

Watchers

 avatar  avatar  avatar

Forkers

hjeeves

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.