An extended module to ohmyfetch
npm install @nuxt-alt/httpnuxt/http and nuxtjs-alt/axios except it utilizes ohmyfetch. All property options will be under http. This module is required in order for @nuxt-alt/auth to function.
@nuxt-alt/http dependency to your project
bash
yarn add @nuxt-alt/http
`
2. Add @nuxt-alt/http to the modules section of nuxt.config.ts
`ts
export default defineNuxtConfig({
modules: [
'@nuxt-alt/http'
],
http: {
/ module options /
}
});
`
Example
Remember this is a mix of ofetch and nuxt/http so to use methods you would use as an example:
`ts
// Available methods: 'get', 'head', 'delete', 'post', 'put', 'patch', 'options'
// $http.$get('/api', options) and $http.$get({ url: '/api' }) is the same as $fetch('/api', { method: 'get' })
await $http.$get('/api', options)
await $http.$get({ url: '/api', ...options })
// Access Raw Response
// $http.get('/api', options) and $http.get({ url: '/api' }) is the same as $fetch.raw('/api', { method: 'get' })
await $http.get('/api', options)
await $http.get({ url: '/api', ...options })
// $http.request('/api', options) and $http.request({ url: '/api' }) is the same as $fetch('/api', options)
await $http.request({ url: '/api', ...options })
await $http.request('/api', options)
// Access Raw Response
// $http.raw('/api', options) and $http.raw({ url: '/api' }) is the same as $fetch.raw('/api', options)
await $http.raw({ url: '/api', ...options })
await $http.raw('/api', options)
// Access Fetch Native Response
// $http.natvie('/api', options) and $http.native({ url: '/api' }) is the same as $fetch.native('/api', options) or fetch('/api', options)
await $http.native({ url: '/api', ...options })
await $http.native('/api', options)
`
Composable
A useHttp composable is avaialble, it works like useFetch except uses this module under the hood.
Interceptors
The interceptors should work exactly like how axios has it so to access them you would use:
`ts
$http.interceptors.request.use(config)
$http.interceptors.response.use(response)
`
@nuxtjs-axios based functions have also been added:
`ts
$http.onRequest(config)
$http.onResponse(response)
$http.onRequestError(err)
$http.onResponseError(err)
$http.onError(err)
`
You can also opt to use $fetch interceptors if you prefer:
`ts
// non-composable
await $http.$get('/api', {
async onRequest({ request, options }) {
// Log request
console.log("[fetch request]", request, options);
// Add ?t=1640125211170 to query search params
options.query = options.query || {};
options.query.t = new Date();
},
})
// composable
await useHttp('/api', {
async onRequest({ request, options }) {
// Log request
console.log("[fetch request]", request, options);
// Add ?t=1640125211170 to query search params
options.query = options.query || {};
options.query.t = new Date();
},
})
`
Options
Config options are taken from the http module, with minor adjustments.
`ts
interface ModuleOptions extends Omit {
baseURL?: string;
browserBaseURL?: string;
host?: string;
prefix?: string;
port?: string | number;
https?: boolean;
proxyHeaders?: boolean;
proxyHeadersIgnore?: string[];
serverTimeout?: number,
clientTimeout?: number,
retry?: number;
credentials?: 'same-origin' | 'omit' | 'include';
headers?: HeadersInit;
debug?: boolean;
}
``