platformRequest.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import axios from "axios";
  2. /**
  3. * axios 默认配置
  4. */
  5. const axiosDefaultOptions = {
  6. baseURL: "",
  7. url: "",
  8. method: "GET",
  9. headers: {},
  10. params: {},
  11. data: {},
  12. timeout: 10000,
  13. };
  14. /**
  15. * 请求平台数据
  16. * @param {*} options
  17. * @returns {Promise}
  18. */
  19. export const platformRequest = async (options) => {
  20. const { url } = options;
  21. if (!url) {
  22. throw new Error("url is required");
  23. }
  24. const internalToken = process.env.PPAI_INTERNAL_API_TOKEN;
  25. const mergedOptions = {
  26. ...axiosDefaultOptions,
  27. ...options,
  28. headers: {
  29. ...axiosDefaultOptions.headers,
  30. ...options.headers,
  31. ...(internalToken ? { Authorization: `Bearer ${internalToken}` } : {}),
  32. },
  33. proxy: false,
  34. };
  35. return axios(mergedOptions).then(res => res.data);
  36. }
  37. /**
  38. * 请求平台 POST 数据
  39. * @param {string} url
  40. * @param {Object} data
  41. * @returns {Promise}
  42. */
  43. export const platformPost = async (url, data) => {
  44. return platformRequest({
  45. url,
  46. method: 'POST',
  47. headers: {
  48. 'Content-Type': 'application/json',
  49. },
  50. data,
  51. });
  52. }
  53. /**
  54. * 请求平台 GET 数据
  55. * @param {string} url
  56. * @param {Object} params
  57. * @returns {Promise}
  58. */
  59. export const platformGet = async (url, params) => {
  60. return platformRequest({ url, method: 'GET', params });
  61. }