Nuclear Planning Manual

    vuex-rest-api
    TypeScript icon, indicating that this package has built-in type declarations

    2.14.0 • Public • Published

    vuex-rest-api

    npm npm

    A Helper utility to simplify the usage of REST APIs with Vuex 2. Uses the popular HTTP client axios for requests. Works with websanova/vue-auth.

    What is this good for

    If you want to connect a REST API with Vuex you'll find that there are a few repetitive steps. You need to request the data from the api (with an action) and set the state (via a mutation). This utility (for the sake of brevity called Vapi in the README) helps in creating the store by setting up the state, mutations and actions with a easy to follow pattern.

    It is not a middleware.

    It's just a helper utility to help prepraring the store object for you. If there's something you don't like just overwrite the property.

    Installation

    npm install vuex-rest-api

    Some notes: This readme assumes that you're using at least ES2015.

    Steps

    1. Import vuex-rest-api (I called it Vapi).
    2. Create a Vapi instance.
      At least you have to set the base URL of the API you're requesting from. You can also define the default state. If you don't define a default state from a property it will default to null. In the example
    3. Create the actions.
      Each action represents a Vuex action. If it will be called (property action), it requests a specific API endpoint (property path) and sets the related property named property to the response's payload.
    4. Create the store object
    5. Pass it to Vuex. Continue reading here to know how to call the actions.
    // store.js
    
    import Vuex from "vuex"
    import Vue from "vue"
    // Step 1
    import Vapi from "vuex-rest-api"
    
    Vue.use(Vuex)
    
    // Step 2
    const posts = new Vapi({
      baseURL: "https://jsonplaceholder.typicode.com",
        state: {
          posts: []
        }
      })
      // Step 3
      .get({
        action: "getPost",
        property: "post",
        path: ({ id }) => `/posts/${id}`
      })
      .get({
        action: "listPosts",
        property: "posts",
        path: "/posts"
      })
      .post({
        action: "updatePost",
        property: "post",
        path: ({ id }) => `/posts/${id}`
      })
      // Step 4
      .getStore()
    
    // Step 5
    export const store = new Vuex.Store(posts)

    Minimal example

    Yep, here: https://codesandbox.io/s/8l0m8qk0q0

    API and further documentation

    The docs are now available under http://vuex-rest-api.org

    Keywords

    none

    Install

    npm i vuex-rest-api

    DownloadsWeekly Downloads

    1,005

    Version

    2.14.0

    License

    MIT

    Unpacked Size

    27 kB

    Total Files

    10

    Last publish

    Collaborators

    • cmalek