This package allows you to easily make calls to OpenAPI using Vue.js. It provides a simple and intuitive interface for making API calls and follows the best practices for integrating with the Vue.js lifecycle.
To install the package, simply run the following command:
npm i vue-openapi-caller
To use the package, first import it into your Vue component:
import apiCaller from "vue-openapi-caller";
Next, define the API calls you want to make using an OpenAPI declaration file. This file should contain the parameters for your API calls and the actions to be taken upon success or failure.
After that, you can use the package's methods to make API calls and handle the responses:
Additionally, the package provides a comprehensive state management system, allowing you to keep track of the progress of your API calls.
import apiCAll from "vue-openapi-caller";
import declaration from "./declaration.ts";
import axios from "axios";
import { paths } from "./type";
const baseURL = "/";
const axiosInstance = axios.create({
baseURL: baseURL,
headers: {
"Content-Type": "application/json",
Accept: "application/json",
},
});
const api = new ApiCAll<paths>(baseURL, axiosInstance);
const {
data, //To handle all server response
error, // To handle only error
execute, // To execute the ajax request
isAborted, // true when request is aborted
isFinished, // true when request is finish
isLoading, // true when request is loading
registerSuccessCallback, // Hook to handle success response
registerErrorCallback, // Hook to handle error response
registerFailureCallback, // Hook to handle failure response
} = api.apiCall("/api/v1/user/{user_id}", {
method: "get",
});
Use hooks
// api/users
const api = new ApiCAll<paths>(baseURL, axiosInstance);
export function useFetchUsers() {
return api.vFetcher("/api/v1/user/", { method: "get" });
}
<script setup>
import { useFetchPosts } from "./api/users";
import { onMounted } from "vue";
const {
execute: fetchUsers,
registerErrorCallback: onError,
registerSuccessCallback: onSuccess,
} = useFecthUsers();
onError((error) => {
console.error("Something went wrong", error);
});
onSuccess((users) => {
console.log("Users", users);
});
onMounted(() => {
fetchUsers();
});
</script>
- Simple and intuitive interface for making API calls
- Automatically handles errors and provides detailed information about any failures
- Comprehensive state management system
- Allows you to define your API calls using an easy-to-use OpenAPI declaration file
This package uses axios as a dependency to handle the http calls, so make sure you have it installed in your project.
If you have any suggestions or find any bugs, please feel free to open an issue or submit a pull request.
This package is open-sourced software licensed under the MIT license.
This package is created and maintained by Epoundor
Enjoy coding!