Отделить axios запросы в отдельный файл

Стоит задача отделить все axios запросы в отдельный файл, чтобы они были доступны с "любого" места проекта. Проект собираю на vue.js.


Ответы (1 шт):

Автор решения: Станислав Усанов

Например так:

axios.js

import axios from "axios";

export const send = ({ query = "", mutation = "", url = app.apiUrl }) => {
  const bodyFormData = new FormData();

  if (query !== "") {
    bodyFormData.set("query", `query {${query}}`);
  } else {
    bodyFormData.set("query", `mutation {${mutation}}`);
  }

  return axios({
    method: "post",
    url: url,
    data: bodyFormData,
    config: {
      headers: {
        "Content-Type": "application/json;charset=utf-8",
        "Access-Control-Allow-Origin": "*"
      }
    }
  })
    .then(resolve => resolve.data)
    .catch(e => ({
      error: "graphql.js",
      message: e
    }));
};

send.vue

<template>
  <div>
    TheTest
  </div>
</template>

<script>
import { send } from "./axios.js";

export default {
  name: "TheTest"
};
</script>
→ Ссылка