koa-hap-client

the koa-hap client js for borwser and node.js sideserver-[2~side.

Usage no npm install needed!

<script type="module">
  import koaHapClient from 'https://cdn.skypack.dev/koa-hap-client';
</script>

README

koa-hap-client

koa-hap-client is the ajax library for Hap protocol. it's use with server-side koa-hap as suite. to build hap application as quickly.

quick start

install

npm install koa-hap-client

use in browser

// file: /api/hello.js

// Hap Service "hello" binding to url "/api/hello".
export async index({ name }) {
  return `Hello ${name}!`
}

<!-- call the hap service, url: "/api/hello", params: { name: "World" }. -->
  <script src="node_modules/koa-hap-client/dist/hap.js"></script>
  <script>
    // create api caller.
    var api = hap('/api', {
      //...with axios options
    })

    api.hello({ name: 'World' }).then(function (result) {
      document.write(result); // Hello World!
    }).catch(function (err) {
      document.write(err);
    });

    //// and you can use default axios options aslo.
    ////hap.api.hello({ name: 'World' }).then((result)=> {
    ////  document.write(result);
    ////}).catch(function (err) {
    ////  document.write(err);
    ////});

  </script>

use in node or webpack

import hap from 'koa-hap-client';

const api = hap('/api', {});
async () => {
  let result = await api.hello({ name: 'World' });

  //// or with then default axios options
  //// result = hap.api.hello({ name: 'World' });
}

examples

pls see koa-hap-example

doc

with axios config

hap(baseUrl, config)

param type descript
baseUrl string the hap service url
config object axios request config

return hap with config.

. operator

then . operator is auto transform member path to url like this:


////hap.a.b.c.d.e({})
//// POST /a/b/c/d/e {}

const api = hap('/api', {})

api.example.hello({ name: "World" })
// POST /api/example/hello { "name": "World" }