Skip to content

Latest commit

 

History

History
224 lines (176 loc) · 4.44 KB

readme.md

File metadata and controls

224 lines (176 loc) · 4.44 KB


Markdownify
Axe API Client
npm version

axe-api-client is a native JavaScript client for Axe API servers.

You can send insert, update, delete, and fetch data from Axe API servers without pain. axe-api-client has advanced query support with the active record pattern.

⚙️ Config

import { api, IRequest } from "axe-api-client";

api.setConfig({
  baseURL: "https://bookstore.axe-api.com/api/v1",
  headers: {},
  params: {},
});

api.interceptors.addRequest((request: IRequest) => {
  return request;
});

api.interceptors.addResponse((response: Response) => {
  // console.log(response);
});

➕ Insert

const response = await api.resource("users").insert({
  name: "Karl",
  surname: "Popper",
});

📤 Post

const response = await api.resource("users").post({
  name: "Karl",
  surname: "Popper",
});

🔄 Update

const response = await api.resource("users").update({
  name: "Karl",
  surname: "Popper",
});

🩹 Patch

const response = await api.resource("users").patch({
  name: "Karl",
  surname: "Popper",
});

✏️ Put

const response = await api.resource("users").put({
  name: "Karl",
  surname: "Popper",
});

🗑️ Delete

const response = await api.resource("users").delete();

🔍 Query

import { api } from "axe-api-client";

const data = await api.resource("users").paginate();

📝 Fields

const response = await api
  .resource("users")
  .fields("name", "surname", "email")
  .paginate();

🧩 Sorting

const response = await api
  .resource("users")
  .fields("name", "surname", "email")
  .sort("name")
  .sort("surname", "DESC")
  .sort("email", "ASC")
  .paginate();

🚦 Limits

const response = await api.resource("users").paginate({ page: 1, perPage: 25 });

⏩ First

const response = await api.resource("users").first();

❓ Where Conditions

const response = await api.resource("users").where("age", 18).paginate();
const response = await api
  .resource("users")
  .where("age", ">=", 18)
  .where("name", "Karl")
  .paginate();
const response = await api
  .resource("users")
  .where("age", ">=", 18)
  .orWhere("name", "Karl")
  .paginate();
const response = await api
  .resource("users")
  .where("age", ">=", 18)
  .andWhere("name", "Karl")
  .paginate();
const response = await api
  .resource("users")
  .where((query) => {
    query.where("name", "Karl").where("surname", "Popper");
  })
  .orWhere("age", ">=", 18)
  .paginate();
const response = await api
  .resource("users")
  .where("age", "IN", [18, 19, 20])
  .paginate();

All the operators should be able to used.

🔗 Related Data

const response = await api
  .resource("users")
  .with("posts{comments{id|content}}")
  .paginate();

⚡ Quick where functions

We can use the following query where functions:

  • whereNot("id", 1)
  • whereLike("name", "*john*")
  • whereNotLike("name", "*john*")
  • whereIn("type", [1, 2, 3])
  • whereNotIn("type", [1, 2, 3])
  • whereBetween("type", 1, 3)
  • whereNotBetween("type", 1, 3)
  • whereNull("age")
  • whereNotNull("age")

👥 Contributors

Made with contrib.rocks.

📜 License

MIT License