apiverse
apiverse
provides a unified way to manage all your API interactions by setting up a client with default fetch options, such as the API base URL and headers. Adapters extend the client with a variety of features to match your favorite API management flavor.
You can use one of the pre-built adapters to get started quickly, or create your own custom adapter to meet your specific requirements.
Setup
[!TIP]
📖 Read the documentation
pnpm add -D apiverse
npm i -D apiverse
Usage
[!TIP]
📖 Read the documentation
ofetch Adapter
import { createClient, ofetch } from 'apiverse'
const baseURL = '<your-api-base-url>'
const adapter = ofetch()
const api = createClient({ baseURL }).with(adapter)
await api('users/1', { method: 'GET' })
|
What it does:
The ofetch adapter wraps ofetch to handle API calls.
|
apiRouteBuilder Adapter
import { apiRouteBuilder, createClient } from 'apiverse'
const baseURL = '<your-api-base-url>'
const adapter = apiRouteBuilder()
const api = createClient({ baseURL }).with(adapter)
await api.users.get(1)
await api.users.post({ name: 'foo' })
|
What it does:
The apiRouteBuilder adapter provides a jQuery-like and Axios-esque API for building and making API calls. It allows you to construct your API calls in a declarative way.
|
OpenAPI Adapter
import { OpenAPI, createClient } from 'apiverse'
const baseURL = 'https://petstore3.swagger.io/api/v3'
const adapter = OpenAPI<'petStore'>()
const api = createClient({ baseURL }).with(adapter)
const response = await api('/user/{username}', {
method: 'GET',
path: { username: 'user1' },
})
|
What it does:
If your API has an OpenAPI schema, apiverse can use it to generate types for you, which the OpenAPI adapter then consumes to provide type-safe API calls.
For example, the response returned by the API call on the left is typed as follows:
const response: {
id?: number
username?: string
}
Please follow the OpenAPI adapter documentation to learn more about how to generate TypeScript definitions from your OpenAPI schema files.
|
Outlook & Roadmap
As of right now, this library handles API management in the client. In the future, apiverse
is intended to extend to the server side as well, providing a unified way to manage API calls in both client and server.
Development
- Clone this repository
- Install latest LTS version of Node.js
- Enable Corepack using
corepack enable
- Install dependencies using
pnpm install
- Run interactive tests using
pnpm dev
License
Made with 💛
Published under MIT License.