Vue.js 3 — это популярный JavaScript-фреймворк, который может быть легко интегрирован с различными API, такими как RESTful и GraphQL. В этой статье мы рассмотрим, как интегрировать оба типа API с Vue.js 3, и покажем примеры кода для каждого из них.
Интеграция с RESTful API: Для интеграции с RESTful API в Vue.js 3 мы будем использовать библиотеку Axios. Сначала установите Axios, выполнив следующую команду:
npm install axiosТеперь импортируйте Axios в ваш компонент Vue.js:
import axios from 'axios';Получение данных из RESTful API:
export default {
  data() {
    return {
      posts: [],
    };
  },
  async created() {
    try {
      const response = await axios.get('https://jsonplaceholder.typicode.com/posts');
      this.posts = response.data;
    } catch (error) {
      console.error(error);
    }
  },
};Отправка данных на RESTful API:
export default {
  methods: {
    async createPost(title, body) {
      try {
        const response = await axios.post('https://jsonplaceholder.typicode.com/posts', {
          title: title,
          body: body,
        });
        console.log(response.data);
      } catch (error) {
        console.error(error);
      }
    },
  },
};Интеграция с GraphQL API: Для интеграции с GraphQL API в Vue.js 3 мы будем использовать библиотеку Apollo Client. Сначала установите необходимые пакеты, выполнив следующую команду:
npm install @apollo/client graphqlСоздайте клиента Apollo:
import { ApolloClient, InMemoryCache, HttpLink } from '@apollo/client';
const httpLink = new HttpLink({
  uri: 'https://your-graphql-endpoint.com/graphql',
});
const client = new ApolloClient({
  link: httpLink,
  cache: new InMemoryCache(),
});
export default client;Теперь импортируйте Apollo Client в ваш компонент Vue.js и выполните запрос GraphQL:
import { gql, useQuery } from '@apollo/client';
import client from './path/to/your/apollo-client';
export default {
  setup() {
    const GET_POSTS = gql`
      query {
        posts {
          id
          title
          body
        }
      }
    `;
    const { loading, error, data } = useQuery(GET_POSTS, { client });
    return {
      loading,
      error,
      data,
    };
  },
};Отправка мутации GraphQL:
import { gql, useMutation } from '@apollo/client';
import client from './path/to/your/apollo-client';
export default {
  setup() {
    const CREATE_POST = gql`
      mutation CreatePost($title: String!, $body: String!) {
        createPost(input: { title: $title, body: $body }) {
          id
          title
          body
        }
      }
    `;
    const [createPost, { loading, error, data }] = useMutation(CREATE_POST, { client });
    const onSubmit = async (title, body) => {
      try {
        const response = await createPost({ variables: { title, body } });
        console.log(response.data);
      } catch (error) {
        console.error(error);
      }
    };
    return {
      loading,
      error,
      data,
      onSubmit,
    };
  },
};
Итак, мы рассмотрели интеграцию Vue.js 3 с RESTful и GraphQL API. Мы использовали библиотеку Axios для работы с RESTful API и Apollo Client для работы с GraphQL API. Теперь вы можете интегрировать эти API в свои проекты на Vue.js 3 и улучшить взаимодействие с сервером и обработку данных. Примеры кода, представленные в этой статье, помогут вам начать работу и дадут представление о том, как выполнять запросы и мутации с использованием различных API.