SandersJ16 / halchemy

Toolkit for creating clients of Hypermedia APIs using HAL

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

halchemy

HAL for humans

Do you have an API that serves data following the HAL specification? The halchemy library makes it easy for your client to make the most of that API.

Getting Started

Install halchemy using the package manager of your chosen language:

Python

pip install halchemy

Javascript

npm install halchemy

In your code, create an Api object with the URL of your API.

Python

from halchemy import Api

api = Api('http://example.org/api')

root = api.root.get()                           # get the root resource
people = api.follow(root).to('people').get()    # follow the people rel to get the list of people

# Issue a refund of $5 to everyone
for person in people['_items']:
    account = api.follow(person).to('account').get()
    api.follow(account).to('deposit').post({'amount':5.00})
    print(f"{person['name']} has a new balance of ${account['balance']}")

Javascript

import { Api } from 'halchemy'

const api = new Api('http://example.org/api')

const root = api.root.get()                          // get the root resource
const people = api.follow(root).to('people').get()  // follow the people rel to get the list of people

// Issue a refund of $5 to everyone
for (const person of people._items) {
    const account = async api.follow(person).to('account').get()
    async api.follow(account).to('deposit').post({amount:5.00})
    console.log(`${person.name} has a new balance of ${account.balance}`)
}

Read the docs to learn more!

About

Toolkit for creating clients of Hypermedia APIs using HAL

License:MIT License


Languages

Language:TypeScript 34.2%Language:Python 28.1%Language:Gherkin 12.0%Language:JavaScript 10.3%Language:Vue 9.4%Language:CSS 5.3%Language:FreeMarker 0.5%Language:Batchfile 0.1%Language:C# 0.1%