apiaxle-api-client

A client library for the ApiAxle API. Written in Coffeescript but distrubuted as JS.

Usage no npm install needed!

<script type="module">
  import apiaxleApiClient from 'https://cdn.skypack.dev/apiaxle-api-client';
</script>

README

NodeAxle

A client library for the ApiAxle API. Written in Coffeescript but distrubuted as JS.

Example Usage

Initialisation

{ V1 } = require "apiaxle-api-client"
v1 = new V1 "127.0.0.1", 3000

Creating new things

v1.newApi "acme", { endPoint: "example.com" }, ( err, meta, api ) ->
  api.save ( err ) ->
    console.log "Created #{ api.id }"
  
v1.newKey "phil", { qps: 1, qpd: 2 }, ( err, meta, key ) ->
  key.save ( err ) ->
    console.log "Created #{ key.id }"

v1.newKeyring "keyholder", {}, ( err, meta, keyring ) ->
  keyring.save ( err ) ->
    console.log "Created #{ keyring.id }"

Finding things

v1.findApi "acme", ( err, meta, api ) ->
  console.log "Api acme has endpoint #{ api.endPoint }"

v1.findKey "phil", ( err, meta, key ) ->
  console.log "Key phil has qps #{ key.qps }"

v1.findKeyring "phil", ( err, meta, keyring ) ->
  console.log "Keyring phil has qps #{ keyring.qps }"

Linking keys to APIs (or keyrings)

v1.findApi "acme", ( err, meta, api ) ->
  api.linkKey "phil", ( err, meta, key ) ->
    console.log "Linked #{ key.id }"

If you don't want the cost of finding the API, just do this:

api = v1.newApi "acme", {}
api.linkKey "phil", ( err, meta, key ) ->
  console.log "Linked #{ key.id }"

Deleting things

api.delete ( err ) -> console.log "Deleted"

Updating things

# be sure to discard `api` once you've done this. newApi is now
# populated with the correct details
api.update { apiFormat: "XML" }, ( err, meta, details ) ->
  console.log "New: #{ details.new }, Old: #{ details.old }"
  console.log "Now I point to the right thing: #{ details.apiFormat }"