Mocking in API Development: Pain Points, Solutions, and Best Practices with EchoAPI

EchoAPI revolutionizes API mocking with dynamic, AI-powered simulations that accelerate development and eliminate backend dependencies, enabling seamless frontend progress and robust testing.

In everyday API development, mocking is almost unavoidable. Whether it’s fast iteration at the early stage of a project or when an endpoint isn’t ready yet, mocking ensures front-end development continues smoothly—even without real backend data.

1. Real-World Pain Points

Imagine this scenario:
You’re building a front-end for an e-commerce site. When a user clicks "Pay Now," your front-end calls the backend /pay endpoint, which should return something like:

{
    "data": {
        "code": 0,
        "message": "success",
        "pay_dtime":"2025-08-10 10:00:00",
        "order_id":"sn12345678"
    }
}

But the problems are:

  • The backend isn’t ready, so you can’t test the post-payment flow.
  • The payment API depends on an external gateway, not configured in the test environment.
  • Some endpoints require complex authentication or data prep, making them unusable early.

Waiting on backend development blocks front-end progress—this is where mocking becomes critical.

2. Common Mocking Approaches & Limitations

2.1 Local JSON Files Mocking

Simplest approach: create mock/data.json and fetch it:

fetch('/mock/pay.json')

Drawbacks:

  • Data is static; cannot simulate multiple scenarios.
  • Cannot handle complex logic like pagination or conditional queries.

2.2 Front-End Request Interception (axios-mock-adapter, Mock.js)

Intercept requests in the browser:

mock.onPost('/api/pay/confirm').reply(200, {
  "data": {
    "code": 0,
    "message": "success",
    "pay_dtime":"2025-08-10 10:00:00",
    "order_id":"sn12345678"
  }
});

Drawbacks:

  • Limited to use within the frontend project, making reuse difficult.
  • Data embedded in code creates high maintenance and cleanup costs later.

2.3 Self-Hosted Mock Server (json-server, Easy Mock)

Run a separate mock services that return data when frontend requests are made.
Drawbacks:

  • High setup and maintenance cost.
  • Complex logic requires extra scripting; flexibility is limited.

These methods work for basic needs but lack flexibility and dynamic data generation as project complexity grows.

3. EchoAPI's Mock Capabilities and Practical Scenarios

EchoAPI offers a flexible and modern solution, supporting both rapid development and complex scenarios. Let's use the payment interface /pay as an example, simulating several return scenarios.

3.1 First Mock Capability of EchoAPI:Simulating Fixed Value Returns

Simulate a fixed response:

{
  "data": {
    "code": 0,
    "message": "success"
  }
}

In EchoAPI, create a new API with POST method and URL /pay. Then, in the "Design" - "Predefined Response Expectations" section, define it visually:

Mock Best Practices with EchoAPI .png

Then switch to the Mock tab to get the generated Mock URL:

Mock URL Best Practices with EchoAPI.png

Calling this URL returns the predefined response:

Calling Mock URL.png

3.2 Second Mock Capability of EchoAPI: Generating Random Values Using Built-in Functions

When you need to add fields with real-time randomly generated values, like the pay_dtime date field in our example, EchoAPI provides abundant built-in variables for quickly generating various data types:

{
  "data": {
    "code": 0,
    "message": "success",
    "pay_dtime":"2025-08-10 10:00:00"
  }
}

Simply add a new field, select "Mock Data" as the value source, and insert the appropriate built-in date variable:

insert a built-in date variable in echoapi.png

Example response:

Mocks in API Development Example response.png

Now each request returns fresh data, avoiding static JSON limitations.

3.3 Third Mock Capability of EchoAPI: Custom Functions

When built-in variables aren't sufficient, custom functions can implement complex logic. For example, adding an order_id field that must start with "sn" followed by 8 digits – a highly customized requirement:

{
  "data": {
    "code": 0,
    "message": "success",
    "pay_dtime":"2025-08-10 10:00:00",
    "order_id":"sn12345678"
  }
}

Use EchoAPI’s custom function as shown:

EchoAPI’s custom function.png

Create a new function fn_orderno using either EchoAPI's built-in AI capabilities or by manually writing an order number generation function:

Create  using AI or manual logic in echoapi.png

Response example:

Response example in echoapi.png

3.4 Fourth Mock Capability of EchoAPI:Returning Different Responses Based on Request Parameters

Payment functionality needs to handle scenarios like successful payment, insufficient balance, and account locked.

Create a new "Insufficient Balance" expectation and configure the relevant return parameters:

Conditional Responses in echoapi.png
Conditional Responses in echoapi1.png

Returned response:

Returned response in echoapi.png
Returned response in echoapi1.png

This approach is far closer to real-world behavior than static JSON.

4. Summary

Mocking isn't just an "optional" tool in frontend development – it's a core capability that significantly improves development efficiency.

This means:

  • Frontend teams can develop independently without relying on backend interface completion.
  • QA can reuse mock endpoints for early integration testing even when APIs aren't ready.

EchoAPI Advantages:

EchoAPI's mocking features provide a more modern solution with:

  • Built-in variables: generate diverse data quickly.
  • Custom functions: implement complex business logic, AI-assisted if needed.

Whether you need rapid iteration, independent development, or realistic scenario simulation, EchoAPI delivers a flexible, professional, and time-saving solution that keeps your projects moving forward seamlessly.

Happy Coding!