新的React库:借助Axiosflow的自动客户端生成功能,API集成变得简单

嘿,开发人员

我很高兴推出一个新的开源库,它以无与伦比的类型安全性弥补了 Express 后端和 Axios 前端客户端之间的差距。Axiosflow 直接从您的 Express.js 后端 API 定义自动生成类型安全的 Axios 客户端函数。这消除了繁琐的样板代码并确保了前端和后端之间的无缝集成,从而提高了开发人员的工作效率并减少了错误。

核心功能:

  • 快速后端集成
  • 客户端函数生成
  • 动态路线支持
  • 类型安全
  • 最低配置
  • Github:链接

    我非常想听听您的想法。

    您可以通过在项目根文件夹中执行命令来使用 axiosflow:

    # Basic generation
    
    axiosflow generate
    
    # With specific options
    
    axiosflow generate -b http://localhost:3000 -o ./src/services

    Axiosflow 生成的这些 API 函数如下所示:

    /**
    
     * Auto-generated types based on API schema
    
     * Generated by axiosflow
    
     * @generated
    
     * @timestamp 2024-12-30T08:09:14.272Z
    
     */
    
    import axios, { AxiosRequestConfig, isAxiosError } from 'axios';
    
    import { BASE_URL, endpoints } from './apiConfig';
    
    import { UserRequest, User } from './types';
    
    /**
     *  * Performs a GET request to /users
     * @param {AxiosRequestConfig} [config] - Optional Axios request configuration
     * @returns {Promise} - User response data
     * @throws {Error} - Throws an error for network or API-related issues
     * @example
     *  * const result = await get_users();
     */
    export const get_users = async (
        data?: Record,
        config?: AxiosRequestConfig
    ): Promise => {
        // URL parameter replacement utility
        const replaceUrlParams = (url: string, data?: Record) => {
            if (!data) return url;
            return url.replace(/:(\w+)/g, (_, key) =>
                data[key as keyof typeof data] !== undefined
                    ? String(data[key as keyof typeof data])
                    : ''
            );
        };
    
        // Construct base URL
        const baseUrl = BASE_URL + endpoints.get_users;
    
        // Replace URL parameters
        const url = replaceUrlParams(baseUrl, data);
    
        const requestConfig: AxiosRequestConfig = {
            method: 'GET',
            url,
            params: data,
            ...config,
        };

    NPM 链接在这里:链接