Axios UI (Work in Progress)

TODO
Demo
Example: Next.js
cd example/nextjs-13
npm install
npm run dev
How To Use
Getting Started
npm install axios-ui --save-dev
Example Next.js
Example available in /example/nextjs-13
Next.js Pages using getServerSideProps
see Example: /example/nextjs-13/pages/index.ts
const { axiosInterceptor, debugToken } = registerAxiosInterceptor(...);
axiosInterceptor.intercept();
axios.get(..., { headers: { 'x-axios-debug': debugToken } });
const axiosUIData = axiosInterceptor.getData();
return {...yourData, axiosUIData};
- provide axiosUIData as pageProps in getServerSideProps
export const getServerSideProps = async (context) => {
const data = ({ axiosUIData, ...yourPageProps } = yourRequestHandler());
return Promise.resolve({
props: {
...yourPageProps,
axiosUIData,
},
});
};
- embed AxiosUI in your App (
\_app.ts)
export default function App({ Component, pageProps }: AppProps) {
<>
<AxiosUIWrapperSSR axios={axios} initialData={pageProps.axiosUIData} />
<Component {...pageProps} />
</>;
}
Next.js /api Routes
see Example: /example/nextjs-13/pages/api/get-entry/[id].ts
- Next.js api route responses should return the axiosUIData object for the client to pick up
const { axiosInterceptor, debugToken } = registerAxiosInterceptor(...);
axiosInterceptor.intercept();
axios.get(..., { headers: { 'x-axios-debug': debugToken } });
const axiosUIData = axiosInterceptor.getData();
return response.status(200).json({...yourData, axiosUIData});