REST API Endpoints

API

Nsproxy exposes an api for easy access to data and creating DNS records. The following is the specification for endpoints and their protocols.

Endpoints

Get description

Returns registered id’s content

  • URL
    /:registered_id
  • Method
    GET
  • Sample Call
    bash curl localhost:8080/unixvoid

Register DNS Entry

Register a host with the cluster manager

  • URL
    /
  • Method
    POST
  • URL Params
    Required:
    hostname : hostname of the box
    cluster : cluster the host is associated with
    port : port to health check on
    Optional
    ip : (optional) the ip the box is on, you only need to set this if the client is behind a firewall
    weight : (optional) the weight of the box (for load balancing). This field defaults to ‘1’. This is how many load balance hits the box will receive in a row before continuing to the next live host
  • Sample Call
    bash curl -d hostname=$1 -d cluster=smartos -d port=7700 192.168.2.201:8080

Add Loadbalancer Entry

Register a DNS entry

  • URL
    /dns
  • Method
    POST
  • URL Params
    Required:
    dnstype : the type of request being made: supported {a, aaaa, cname}
    domain : domain name, this will be fully qualified by nsproxy if it is not already
    value : the entry value {ip4 address for ‘a’, ipv6 address for ‘aaaa’, aname for ‘aname’}
  • Sample Call
    bash curl -d dnstype=CNAME -d domain=bitnuke.io -d value=turbo.lb.bitnuke.io localhost:8080/dns

Remove DNS Entry

Remove a DNS entry from the nameserver

  • URL
    /dns/rm
  • Method
    POST
  • URL Params
    Required:
    domain : the domain to remove entry for
    Optional:
    dnstype : (optional) dns request to remove {a, aaaa, cname}. If not set, will remove all three from the db for the domain
  • Sample Call
    bash curl -d dnstype=a -d domain=bitnuke.io localhost:8080/dns/rm

Get Cluster Metadata

Get metadata for a particular cluster (returns registred hosts)

  • URL
    /clusterspec
  • Method
    POST
  • URL Params
    Required:
    cluster : cluster name to get hosts for
  • Sample Call
    bash curl -d cluster=smartos localhost:8080/clusterspec

Get Host Metadata

Get metadata for a particular host (in a cluster)

  • URL
    /hostspec
  • Method
    POST
  • URL Params
    Required:
    cluster : cluster name that the host belongs to
    host : hostname to get the ip of
  • Sample Call
    bash curl -d cluster=smartos -d host=test1 localhost:8080/hostspec

Get DNS entry metadata

Get information about a particular DNS entry (ie: A, AAAA, CNAME.. data)

  • URL
    /dnstype
  • Method
    POST
  • URL Params
    Required:
    dnstype : the dnstype of the entry, default is ‘A’ if not set
    domain : domain name of the entry to return
  • Sample Call
    bash curl -d dnstype=cname -d domain=google.com localhost:8080/dnsspec

Get Live Hosts

Get a list of all live hosts (in the format :)

  • URL
    /hosts
  • Method
    GET
  • Sample Call
    bash curl localhost:8080/hosts

Get Live Clusters

Get a list of all live clusters

  • URL
    /clusters
  • Method
    GET
  • Sample Call
    bash curl localhost:8080/clusters

Get DNS Entries

Get a list of all DNS Entries

  • URL
    /dns
  • Method
    GET
  • Sample Call
    bash curl localhost:8080/dns