0.0.3 • Published 4 years ago
apitizer v0.0.3
apitizer
apitizer is inspired by restful.js, but is written in typescript with a slightly different and smaller api.
It allows you to access restul backends with a chainable, functional design. The actual side effects are rxjs driven and allows you to integrate nicely with your own observables.
I've put heavy focus on delightful generics to make everyones life with foreign data just a little bit easier.
Documentation
Installation
yarn add apitizer
or
npm install apitizer
Quick Overview
import { create } from 'apitizer';
interface CategoryData {
name: string;
}
interface Category extends CategoryData {
readonly id: number;
}
interface ItemData {
title: string;
content: string;
}
interface Item extends ItemData {
readonly id: number;
}
const api = create('http://myapi.com');
const categories = api.resource<Category, CategoryData>('categories');
categories.url(); // http://myapi.com/categories
categories.query({ active: true }).url(); // http://myapi.com/categories?active=true
categories.one(1).url(); // http://myapi.com/categories/1
categories.one(1).get(); // Observable<Category>
categories.post({ name: 'apitizer' }); // Observable<Category>
const items = categories.one(1).resource('items');
items.url(); // http://myapi.com/categories/1/items
A full documentation fill follow asap.