api-party
Nuxt module to securely connect with any API – server proxy & dynamic composable names
nuxt-api-party
Nuxt module to securely connect with any API.
Features
- 🪅 Dynamic composable names
- 🔒 Protected API credentials in the client
- 🪢 Token-based authentication built-in or bring your own headers
- 🧇 Connect multiple API endpoints
- 🍱 Feels just like
useFetch
- 🗃 Cached responses
- 🦾 Strongly typed
Setup
# pnpmpnpm add -D nuxt-api-party# npmnpm i -D nuxt-api-party
Basic Usage
Add this module nuxt-api-party
to your Nuxt config and prepare your first API connection by setting an endpoint object with the following properties for the apiParty
module option:
// `nuxt.config.ts`export default defineNuxtConfig({ modules: ['nuxt-api-party'], apiParty: { endpoints: { jsonPlaceholder: { url: process.env.JSON_PLACEHOLDER_API_BASE_URL!, // Global headers sent with each request headers: { Authorization: `Bearer ${process.env.JSON_PLACEHOLDER_API_TOKEN}` } } } }})
If you were to call your API jsonPlaceholder
, the generated composables are:
$jsonPlaceholder
– Returns the response data, similar to$fetch
useJsonPlaceholderData
– Returns multiple values similar touseFetch
Use these composables in your templates or components:
<script setup lang="ts">const { data, pending, refresh, error } = await useJsonPlaceholderData('posts/1')</script><template> <h1>{{ data?.title }}</h1> <pre>{{ JSON.stringify(data, undefined, 2) }}</pre></template>
ℹ️ You can connect as many APIs as you want, just add them to the
endpoints
object.
💻 Development
- Clone this repository
- Enable Corepack using
corepack enable
- Install dependencies using
pnpm install
- Run
pnpm run dev:prepare
- Start development server using
pnpm run dev
Special Thanks
- Dennis Baum for sponsoring the initial version of this package.
- Maronbeere for his logo pixel art.
License
MIT License © 2022-PRESENT Johann Schopplich
Contributors 3