Skip to content

API Automation

feuse-mcp provides powerful API automation functionality that can understand backend interface documentation and automatically generate a complete frontend API toolchain, greatly improving development efficiency and ensuring consistency between frontend and backend interfaces.

Tool Overview

api-automation Tool

api-automation is a specialized code generation assistant focused on automatically generating frontend API-related code based on backend API documentation.

Core Capabilities

  • 📘 TypeScript Interface Types: Precise type definitions ensuring type safety
  • 🔗 API URL Constants: Unified interface address management, avoiding hard coding
  • 🎭 Mock Data: Simulation data for development and testing, supporting offline development
  • 🚀 Request Functions: Encapsulated API call functions with error handling

Supported API Documentation Formats

  • OpenAPI/Swagger specifications
  • Postman Collection
  • Apifox documentation
  • Custom JSON/YAML/MD formats
  • Plain text API descriptions

Usage

Basic Call

Please use the api-automation tool to generate code based on the following API documentation:

[Paste complete API documentation content or provide documentation link]

Parameter Description

  • apiDocs (required): Complete backend API definition documentation
  • Auto-detection: The tool automatically analyzes current project structure and code standards

Generated File Structure

Default Directory Structure

The api-automation tool generates the following structure in the project:

src/
├── apis/              # API type definitions and URL constants
│   └── getUserInfo.ts # User info interface
├── mock/              # Mock data
│   └── getUserInfo.ts # User info simulation data
└── service/           # Request service functions
    └── index.ts       # API call functions

File Naming Convention

  • File names: Use the last segment of API URL, converted to camelCase format
    • /api/user/get-user-infogetUserInfo.ts
  • Function names: Consistent camelCase format with file names
  • Type names: Use PascalCase format with appropriate suffixes
    • GetUserInfoRequest, GetUserInfoResponse

Generated Code Examples

API Type Definition File

Interface definitions and address constants:某个项目/src/apis

  • File names are the last part of interface URL in camelCase, like queryOrderStatus.ts
  • Code structure reference:
    ts
    // User query order status related interface definition
    // path: /panzer_jack/api/v1/user/query_order_status
    // desc: User order placement
    
    export const QUERY_ORDER_STATUS = '/panzer_jack/api/v1/user/query_order_status'
    
    // Request parameter interface
    export interface IQueryOrderStatusReq {
      order_id: string; // Order ID
    }
    
    // Response data interface
    export interface IQueryOrderStatusResp {
      order_id: string; // Order ID
      status: string; // Order status
    }

Mock data: 某个项目/src/mock

  • File names are the last part of interface URL in camelCase, like queryOrderStatus.ts
  • Code structure reference:
    ts
    // mock/queryOrderStatus.ts
    // path: /panzer_jack/api/v1/query_order_status
    // desc: User query order status
    
    import type { IQueryOrderStatusReq } from '@/apis/queryOrderStatus'
    import { QueryOrderStatusErrorCode } from '@/apis/queryOrderStatus'
    
    export default [
      {
        url: '/panzer_jack/api/v1/query_order_status',
        method: 'post',
        response: ({ body }: { body: IQueryOrderStatusReq }) => {
          console.log('Query order status request parameters:', body)
    
          // Validate required parameters
          if (!body.order_id) {
            return {
              code: 400,
              message: 'Missing required parameter order_id',
              data: body
            }
          }
    
          // Simulate random system error (5% probability)
          if (Math.random() < 0.05) {
            return {
              code: QueryOrderStatusErrorCode.SYSTEM_ERROR,
              message: 'Unknown error occurred, please go to order list to confirm if order was placed successfully or cancel (order list display may have 15-minute delay)',
              data: {}
            }
          }
    
          // Simulate different order statuses
          const statusArray = ['pending', 'processing', 'completed', 'cancelled']
          const randomStatus = statusArray[Math.floor(Math.random() * statusArray.length)]
    
          // Normal case, return order status
          return {
            code: 0,
            message: 'Query order status successful',
            data: {
              order_id: body.order_id,
              status: randomStatus
            }
          }
        }
      }
    ]

Communication functions: 某个项目/src/service/index.ts

  • Function names are the last part of interface URL in camelCase, like queryOrderStatus.ts
  • Code structure reference:
ts
import { QUERY_ORDER_STATUS, type IQueryOrderStatusResp, type IQueryOrderStatusReq } from '@/apis/queryOrderStatus.ts'
// Use existing request libraries and function specifications in current project to generate request functions

Smart Features

Project Structure Adaptation

The tool automatically detects existing project structure and standards:

  • Auto-detect API directories: If project already has src/api, src/apis or other API-related directories
  • Follow existing naming: Analyze naming patterns of existing files and maintain consistency
  • Adapt code style: Generate code that complies with project's ESLint, Prettier configurations
  • Framework adaptation: Automatically identify React, Vue, Angular and other frameworks and generate corresponding code styles

Code Standard Compliance

Generated code strictly follows these standards:

  • TypeScript type safety: All interfaces have complete type definitions
  • Error handling: Includes comprehensive error handling logic
  • Code comments: Automatically generate JSDoc comments
  • Naming conventions: Follow project naming conventions
  • Code formatting: Conform to project formatting rules

Best Practices

1. Documentation Quality

  • Ensure API documentation is complete and accurate
  • Provide detailed request/response examples
  • Use clear naming conventions

2. Code Maintenance

  • Regularly regenerate to maintain synchronization
  • Separate custom code from generated code
  • Use version control to track changes

3. Error Handling

  • Implement unified error handling mechanism
  • Add request interceptors and response interceptors
  • Provide appropriate loading and error states

4. Type Safety

  • Enable TypeScript strict mode
  • Use generated type definitions
  • Avoid using any type

Released under the MIT License