Refactor high-complexity React components in Dify frontend. Use when `pnpm analyze-component...
npx skills add dkyazzentwatwa/chatgpt-skills --skill "api-response-mocker"
Install specific skill from multi-skill repository
# Description
Generate realistic mock API responses with fake data. Use for testing, prototyping, or creating sample data for frontend development.
# SKILL.md
name: api-response-mocker
description: Generate realistic mock API responses with fake data. Use for testing, prototyping, or creating sample data for frontend development.
API Response Mocker
Generate realistic mock API responses with fake data using Faker.
Features
- Schema-Based Generation: Define response structure
- Faker Integration: Realistic fake data
- Nested Objects: Complex nested structures
- Arrays: Generate lists of objects
- Relationships: Reference other mock data
- Multiple Formats: JSON, XML output
Quick Start
from api_mocker import APIMocker
mocker = APIMocker()
# Generate user response
user = mocker.generate({
"id": "uuid",
"name": "name",
"email": "email",
"created_at": "datetime"
})
# Generate list of users
users = mocker.generate_list({
"id": "uuid",
"name": "name",
"email": "email"
}, count=10)
CLI Usage
# Generate from schema file
python api_mocker.py --schema user_schema.json --output user.json
# Generate list
python api_mocker.py --schema product.json --count 50 --output products.json
# Generate with seed (reproducible)
python api_mocker.py --schema order.json --seed 42 --output order.json
# Preview without saving
python api_mocker.py --schema customer.json --preview
Schema Format
Define fields using Faker provider names:
{
"id": "uuid",
"first_name": "first_name",
"last_name": "last_name",
"email": "email",
"phone": "phone_number",
"company": "company",
"address": {
"street": "street_address",
"city": "city",
"state": "state",
"zip": "zipcode",
"country": "country"
},
"created_at": "date_time_this_year",
"is_active": "boolean"
}
Available Data Types
Personal
name,first_name,last_nameemail,safe_emailphone_numberssn
Address
address,street_addresscity,state,state_abbrzipcode,postcodecountry,country_codelatitude,longitude
Internet
url,domain_nameipv4,ipv6user_name,passworduuid,uuid4mac_address
Business
company,company_suffixjob,job_titlebs,catch_phrase
Financial
credit_card_numberiban,bbancurrency_codeprice(custom: returns float)
Date/Time
date,timedate_time,date_time_this_yeardate_of_birthiso8601
Text
text,sentence,paragraphword,wordsslug
Numeric
random_int,random_numberrandom_float(use{"type": "float", "min": 0, "max": 100})boolean
Advanced Schemas
Arrays
{
"id": "uuid",
"name": "name",
"tags": {
"_array": true,
"_count": 3,
"_item": "word"
},
"orders": {
"_array": true,
"_count": 5,
"_item": {
"order_id": "uuid",
"amount": "random_int",
"date": "date"
}
}
}
Custom Values
{
"id": "uuid",
"status": {
"_choice": ["pending", "active", "completed"]
},
"priority": {
"_range": [1, 5]
},
"score": {
"_float": {"min": 0.0, "max": 100.0, "decimals": 2}
}
}
Nested Objects
{
"user": {
"id": "uuid",
"profile": {
"bio": "paragraph",
"avatar_url": "image_url",
"social": {
"twitter": "user_name",
"linkedin": "url"
}
}
}
}
API Reference
APIMocker Class
class APIMocker:
def __init__(self, locale: str = "en_US", seed: int = None)
# Generation
def generate(self, schema: dict) -> dict
def generate_list(self, schema: dict, count: int = 10) -> list
# File operations
def from_schema_file(self, filepath: str) -> dict
def save(self, data: any, filepath: str, format: str = "json")
# Utilities
def set_seed(self, seed: int)
def get_faker(self) -> Faker
Example Schemas
User Response
{
"id": "uuid",
"username": "user_name",
"email": "email",
"profile": {
"first_name": "first_name",
"last_name": "last_name",
"avatar": "image_url",
"bio": "sentence"
},
"created_at": "iso8601",
"last_login": "date_time_this_month"
}
E-commerce Product
{
"sku": "uuid",
"name": "catch_phrase",
"description": "paragraph",
"price": {"_float": {"min": 9.99, "max": 999.99}},
"currency": "currency_code",
"category": {"_choice": ["Electronics", "Clothing", "Home", "Sports"]},
"in_stock": "boolean",
"rating": {"_float": {"min": 1, "max": 5, "decimals": 1}},
"reviews_count": {"_range": [0, 500]}
}
API Error Response
{
"error": {
"code": {"_choice": ["NOT_FOUND", "UNAUTHORIZED", "BAD_REQUEST"]},
"message": "sentence",
"request_id": "uuid",
"timestamp": "iso8601"
}
}
Dependencies
- faker>=22.0.0
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.