@lightweight-clients/shikimori-graphql-api-lightweight-client
v1.1.1
Published
Lightweight Shikimori GraphQL API client. Exports only minimal Fetch call. Fully compatible with AWS LLRT.
Maintainers
Readme
Shikimori GraphQL API Lightweight Client
This is a typed lightweight client for Shikimori GraphQL API. It contains only methods and types
and exports only fetch calls to make requests.
Installation
npm install @lightweight-clients/shikimori-graphql-api-lightweight-clientUsage
The library provides 2 types of methods: api endpoints and the client_ methods.
Client methods
The client_ methods are used to set up the client. They are:
client_setUserAgent(agent: string): Sets the user agent for the client (required, according to Shikimori API).client_setAuthToken(token: string): Sets the authentication token for the client.client_setCustomFetch(callback): Sets a custom fetch function for the client.
API methods
The API methods are used to make requests to the Shikimori API. They accepts 2 arguments:
args- The arguments for the request (e.g.search,page,limit, etc.).resultDescription- The description of the result. This is an object, where the keys are the names of the fields in the result and the values are always1. For nested objects, the value is an object with the same structure.
Available API methods are:
- animes
- characters
- contests
- currentUser
- genres
- mangas
- people
- userRates
- users
Examples
import { animes, client_setUserAgent } from 'shikimori-graphql-api-lightweight-client';
import { client_setAuthToken } from './core';
client_setUserAgent('my-app/1.0');
// client_setAuthToken('your_auth_token'); - optional, for authenticated requests
const result = await animes(
{ ids: '1' },
{ malId: 1, genres: { name: 1 } });
console.log(result);Features
- No dependencies.
- When using code minifiers, only the fetch command is exported.
- Can be used in browser and Node.js.
- Fully compatible with AWS LLRT.
- Fully typed API.
Versioning
GraphQL API is not versioned, so the client is updated to the latest API version when a new version of the client is released.
- Major version updates of the client may include breaking changes in either GraphQL API or the client itself.
- Minor version updates of the client may include new features or improvements, but should not break existing functionality. Minor version can also include changes in the GraphQL API that do not break existing functionality.
- Patch version updates of the client are for bug fixes and should not introduce any new features or breaking changes.
Schema
The schema for the Shikimori GraphQL API is available in the lightweight-clients/schemas repository.
License
This project is licensed under the MIT License - see the LICENSE.md file for details. Types are generated from Shikimori GraphQL API documentation by graphql-codegen.
