Χτίζοντας ένα μέτωπο πριν από την API είναι έτοιμος: Χωρίς Μπρίτλ Fixtures (ελληνικά (Greek))

Χτίζοντας ένα μέτωπο πριν από την API είναι έτοιμος: Χωρίς Μπρίτλ Fixtures

Saturday, 13 December 2025

//

15 minute read

Εισαγωγή

Πόσες φορές έχετε μπλοκαριστεί περιμένοντας το backend APIs να είναι έτοιμο; Ή ξόδεψε ώρες διατηρώντας εύθραυστα δεδομένα που γίνονται μπαγιάτικο τη στιγμή που οι απαιτήσεις αλλάζουν;

Εισάγετε mostlylucid.mockllmapi - μια πλατφόρμα κοροϊδίας ASP.NET Core που χρησιμοποιεί Large Language Models για να παράγει ρεαλιστικές, κατανοητές απαντήσεις API στη μύγα. Αντί για τη διατήρηση των εξαρτημάτων JSON, μπορείτε να πάρετε ευφυείς χλευασμούς που προσαρμόζονται στα αιτήματά σας και να θυμάστε κατάσταση σε όλες τις κλήσεις.

Τι υποστηρίζει: Κάθε πρωτόκολλο που χρειάζεστε - REST, GraphQL, gRPC, SignalR, Server-Sent Events, και OpenAPI. Σε αντίθεση με τα στατικά εξαρτήματα, οι απαντήσεις παράγονται δυναμικά με βάση το περιεχόμενο της αίτησής σας, καθιστώντας τις πολυβήμα ροές εργασίας και σύνθετα σενάρια δοκιμών ασήμαντα.

Σύνδεσμοι Έργου

NuGetCity name (optional, probably does not need a translation) NuGetCity name (optional, probably does not need a translation) Απελευθέρωση GitHub Άδεια: Unlicense

Τρεις Τρόποι Χρήσης

Μπορείτε να χρησιμοποιήσετε ως επί το πλείστον διαυγής.mockllmapi με τρεις τρόπους, ανάλογα με το πόσο απομονωμένο θέλετε το περιβάλλον dev σας να είναι:

  1. ASP.NET Core NuGet πακέτο - Προσθήκη στα υπάρχοντα έργα σας
  2. Ανταλλακτικό εργαλείο CLI - Εκτελέσιμο cross-platform (download από κυκλοφορίες)
  3. Κιβώτιο βαλβίδων - Απαιτούμενη εγκατάσταση Zero

Το χαρακτηριστικό του δολοφόνου: Μνήμη πλαισίου

Πλήρεςς οδηγός: API Contexts Documentation

Παραδοσιακή mock APIs έχουν ένα μοιραίο ελάττωμα: κάθε αίτηση είναι ανεξάρτητη. Πάρτε ένα χρήστη με την ταυτότητα 42, στη συνέχεια, να φέρει τις παραγγελίες τους, και θα πάρετε παραγγελίες για το ID χρήστη 99.

Πλαίσιο API Λύστε αυτό με κοινή μνήμη μεταξύ των σχετικών αιτημάτων:

// Request 1: Get a user
// Note: 'context' is a simple query parameter - no cookies or sessions needed
fetch('/api/users/123?context=checkout-session')
// Response: { id: 42, name: "Alice Smith", email: "[email protected]" }

// Request 2: Get orders (same context parameter)
fetch('/api/orders?userId=42&context=checkout-session')
// Response: { userId: 42, customerName: "Alice Smith", items: [...] }
// Perfect! Same user, consistent data

Η LLM βλέπει προηγούμενα αιτήματα στο ίδιο πλαίσιο και δημιουργεί συνεπή δεδομένα. Αυτή είναι η αλλαγή παιχνιδιού για πολλαπλές ροές εργασίας βημάτων.

Χαρακτηριστικά:

Κύκλος ζωής:

  • Αυτόματη λήξη μετά από 15 λεπτά αδράνειας (ρυθμιζόμενη)
  • Κάθε αίτημα ανανεώνει το χρονοδιακόπτη

Συμπεριφορά:

  • Έξυπνη εξαγωγή ΟΛΩΝ των πεδίων από τις απαντήσεις

Ασφάλεια:

  • Μηδέν διαρροές μνήμης - τα συμφραζόμενα καθαρίζονται μόνοι τους

Υpiοθέσει χρήση:

  • Ιδανικό για CI/CD - καμία κατάσταση μεταξύ τρεξίματος

Γρήγορη εκκίνηση

Επιλογή 1: NuGet Package

dotnet add package mostlylucid.mockllmapi
// Program.cs
builder.Services.AddLLMockApi(builder.Configuration);
app.MapLLMockApi("/api/mock");

Επιλογή 2: Εργαλείο CLI

# Download from https://github.com/scottgal/LLMApi/releases
llmock serve --port 5000

Επιλογή 3: Docker

Πλήρεςς οδηγός: Οδηγός ανάπτυξης Docker

git clone https://github.com/scottgal/LLMApi.git
cd LLMApi
docker compose up -d

Προαπαιτούμενα: LLM Backend

Χρειάζεσαι ένα από τα: Ollama, OpenAI, or LM Studio:

# Recommended: Ollama with ministral-3:3b (ultra-fast, accurate JSON generation)
ollama pull ministral-3:3b

Βλέπεις; Οδηγός μοντέλων Ollama για όλες τις πρότυπες συστάσεις και συγκρίσεις.

Δοκίμασέ το αμέσως.

Μόλις τρέξετε, κάντε το πρώτο σας αίτημα:

curl http://localhost:5000/api/mock/users
# Response: [{"id": 1, "name": "Alice Johnson", "email": "[email protected]"}, ...]

Αυτό είναι! Έχετε τώρα ένα έργο mock API που παράγει ρεαλιστικά δεδομένα σε ζήτηση.

Πραγματικό Παράδειγμα: Αναζήτηση από το πιο διαυγή.net

Εδώ είναι ο πραγματικός κωδικός αναζήτησης από αυτό το blog - αυτός είναι αμετάβλητος κωδικός πρόσθιας παραγωγής, δεν απαιτούνται προσαρμογές για το χλευασμό:

// typeahead.js from mostlylucid.net
export function typeahead() {
    return {
        query: '',
        results: [],
        search() {
            fetch(`/api/search/${encodeURIComponent(this.query)}`)
                .then(response => response.json())
                .then(data => { this.results = data; });
        }
    }
}

Κόφ' το.

# Using CLI
llmock serve --port 5000

# Query returns contextual results
curl http://localhost:5000/api/search/markdown
# LLM generates blog posts about Markdown

curl http://localhost:5000/api/search/docker
# LLM generates blog posts about Docker

Κάθε απάντηση είναι μοναδική και ρεαλιστική, προσαρμόζοντας στην ερώτηση.

Έλεγχος Σχήματος: Καθορίστε το Schema σας

Πέρα από τη δημιουργία τυχαίων δεδομένων, συχνά χρειάζεστε ακριβή έλεγχο της δομής JSON. Ο έλεγχος σχήματος σας επιτρέπει να πείτε στο LLM ακριβώς ποια δομή να δημιουργήσετε - το πιο ισχυρό χαρακτηριστικό για την ανάπτυξη του frontend.

Βασικό σχήμα

# Without shape - random structure
curl http://localhost:5000/api/mock/users
# Response: { "userId": 1, "fullName": "Alice" }

# With shape - you control it
curl "http://localhost:5000/api/mock/users" \
  -H 'X-Response-Shape: {"id":0,"name":"string","email":"string"}'
# Response: { "id": 1, "name": "Alice", "email": "[email protected]" }

Τρεις τρόποι για να καθορίσετε το σχήμα:

  1. Παράμετρος ερωτήσεων - ?shape={...}
  2. Κεφαλίδα HTTP - X-Response-Shape: {...} (συνιστάται)
  3. Αίτημα φορέα - {"shape": {...}}

Φωτεινό σχήμα

const shape = {
  company: {
    id: 0,
    name: "string",
    employees: [{
      id: 0,
      firstName: "string",
      department: { id: 0, name: "string" },
      projects: [{ id: 0, title: "string" }]
    }]
  }
};

fetch('/api/mock/company', {
  headers: { 'X-Response-Shape': JSON.stringify(shape) }
});

Ευθυγράμμιση TypeScript

interface User {
  id: number;
  name: string;
  email: string;
}

const USER_SHAPE: Partial<User> = { id: 0, name: "", email: "" };

// Shape becomes your type definition AND mock schema!

Ροές εργασίας πολλαπλών βημάτων με πλαίσιο

Τώρα ας συνδυάσουμε τον έλεγχο σχήματος με τα πλαίσια API για να χειριστούμε πολύπλοκες, πολυ-βήμα ροές εργασίας. Θυμηθείτε το χαρακτηριστικό μνήμης πλαίσιο από νωρίτερα; Εδώ είναι πώς λάμπει σε πραγματικό κόσμο ασύγχρονες λειτουργίες.

Αυτό το παράδειγμα από την κυρίως διαυγή.net μεταφραστική υπηρεσία δείχνει πώς η LLM διατηρεί κατάσταση σε μια πλήρη async ροή εργασίας:

# Step 1: Start translation
curl -X POST http://localhost:5000/api/translate/start?context=translate-session \
  -d '{"language": "es", "markdown": "# Hello World"}'
# Response: { "taskId": "abc-123", "status": "processing" }

# Step 2: Check status (LLM remembers the task)
curl http://localhost:5000/api/translate/status/abc-123?context=translate-session
# Response: { "taskId": "abc-123", "status": "complete" }

# Step 3: Get result (same taskId!)
curl http://localhost:5000/api/translate/result/abc-123?context=translate-session
# Response: { "taskId": "abc-123", "translatedText": "# Hola Mundo" }

Προσέξτε πώς taskId είναι συνεπής σε όλα τα αιτήματα. Το πλαίσιο το καθιστά αυτό εφικτό.

Πέρα από την Ανάσταση: Όλα τα Πρωτόκολλα

Μέχρι στιγμής έχουμε επικεντρωθεί στην REST, αλλά οι σύγχρονες εφαρμογές χρειάζονται περισσότερα. Είτε είστε οικοδόμηση με GraphQL, την εφαρμογή σε πραγματικό χρόνο χαρακτηριστικά με SignalR, ή τη συνεργασία με υπηρεσίες gRPC, ως επί το πλείστον διαυγή.mockllmapi έχει σας καλύπτει.

Υποστηριγμένα πρωτόκολλα:

  • ~ REST
  • ΓράφημαQL
  • ; gRPC
  • ; SignerR
  • ; Εκδηλώσεις Server-Sent (SSE)
  • OpenAPI / Swagger

ΓράφημαQL

Οδηγός: Τμήμα ΓράφημαQL

curl -X POST http://localhost:5000/api/mock/graphql \
  -d '{"query": "{ users { id name email } }"}'

Το ερώτημα είναι το σχήμα - δεν χρειάζεται ξεχωριστό σχήμα.

gRPC

Πλήρεςς οδηγός: Υποστήριξη gRPC

# Upload .proto file
curl -X POST http://localhost:5116/api/grpc-protos \
  --data-binary "@user_service.proto"

# Call via JSON or binary Protobuf
curl -X POST http://localhost:5116/api/grpc/userservice/UserService/GetUser \
  -d '{"user_id": 123}'

Signer Real-Time

Οδηγός: Οδηγός επίδειξης Signer

const connection = new signalR.HubConnectionBuilder()
    .withUrl("/hub/mock")
    .build();

connection.on("DataUpdate", (message) => {
    console.log(message.data); // Live generated data
});

await connection.start();
await connection.invoke("SubscribeToContext", "stock-prices");

Ιδανικό για πρωτοτυπίες ταμπλό.

Εκδηλώσεις Server-Sent (SSE)

Οδηγός: Λειτουργία SSE Streaming

const eventSource = new EventSource('/api/mock/stream/users');
eventSource.onmessage = (event) => {
    const data = JSON.parse(event.data);
    console.log('Token:', data.chunk); // Progressive generation
};

OpenAPI / Swagger

Πλήρεςς οδηγός: Χαρακτηριστικά OpenAPI

# CLI: Load any OpenAPI spec
llmock serve --spec https://petstore3.swagger.io/api/v3/openapi.json

# All endpoints become live mocks automatically
curl http://localhost:5000/petstore/pet/123

Pluggable Εργαλεία: Αναμειγνύονται πραγματικά δεδομένα & Mock

Πλήρεςς οδηγός: Εργαλεία & Δράσεις

Μερικές φορές χρειάζεστε μια υβριδική προσέγγιση - πραγματικά δεδομένα από την παραγωγή σε συνδυασμό με δημιουργημένα δεδομένα mock. Το pluggable σύστημα εργαλείων σας επιτρέπει να καλέσετε πραγματικά API κατά τη διάρκεια της παραγωγής απομίμησης, δημιουργώντας απίστευτα ρεαλιστικά σενάρια δοκιμών.

{
  "Tools": [{
    "Name": "getUserData",
    "Type": "http",
    "HttpConfig": {
      "Endpoint": "https://api.production.com/users/{userId}",
      "Headers": { "Authorization": "Bearer ${PROD_API_KEY}" }
    }
  }]
}
curl "http://localhost:5000/api/mock/orders?useTool=getUserData&userId=123"

Το mockes fitches REAL δεδομένα χρηστών, στη συνέχεια, η LLM παράγει εντολές χρησιμοποιώντας αυτό. Εξαιρετικά χρήσιμο για ρεαλιστικές δοκιμές με υβριδικό mock/πραγματικές ροές εργασίας.

ASP.NET Core Integration

Αν χτίζετε με το ASP.NET Core, η ενσωμάτωση είναι απρόσκοπτη. Η ομορφιά αυτής της προσέγγισης είναι Μετατροπές μηδενικού κωδικού στις υπηρεσίες σας - απλά ρυθμίζετε HttpClient να επισημάνει το χλευασμό κατά τη διάρκεια της ανάπτυξης και την πραγματική API στην παραγωγή.

// Real code from mostlylucid.net
builder.Services.AddHttpClient<IMarkdownTranslatorService, MarkdownTranslatorService>(
    client => {
        var baseUrl = builder.Configuration["TranslationService:BaseUrl"]
            ?? "http://localhost:5000";  // Mock during dev
        client.BaseAddress = new Uri(baseUrl);
    }
);

Appsettings. Development.json:

{
  "TranslationService": {
    "BaseUrl": "http://localhost:5000"  // Mock
  }
}

Appsettings. Production.json:

{
  "TranslationService": {
    "BaseUrl": "https://api.production.com"  // Real
  }
}

Αυτό το μοτίβο λειτουργεί για κάθε HttpClient in your application - translation services, payment gates, external APIs, you name it.

Πότε να το χρησιμοποιήσετε αυτό

Πριν βουτήξουμε σε προηγμένα χαρακτηριστικά, ας είμαστε σαφείς σχετικά με το πότε αυτό το εργαλείο έχει νόημα για τη ροή εργασίας σας.

Ιδανικό για:

  • Ανάπτυξη του Frontend πριν από την ύπαρξη του backend - Σταμάτα να μπλοκάρεις τις ομάδες υποστήριξης.
  • Δοκιμή ροής εργασίας πολλών σταδίων - Η μνήμη πλαισίου χειρίζεται περίπλοκα σενάρια
  • Πρωτότυπο API - Πείραμα με σχήματα απόκρισης πριν από τη δέσμευση
  • Offline ανάπτυξη - Εργασίες χωρίς εξαρτήσεις δικτύου
  • Δοκιμή σεναρίου σφάλματος - Προσομοιώστε τις αποτυχίες χωρίς να σπάσετε την παραγωγή
  • Αγωγοί CI/CD - Χωρίς εξωτερικές εξαρτήσεις σημαίνει γρηγορότερα, πιο αξιόπιστα οικοδομήματα

Δεν είναι ιδανικό για:

  • Περιβάλλοντα παραγωγής - Αυτό είναι ένα εργαλείο ανάπτυξης και δοκιμής
  • καθοριστικά δεδομένα δοκιμών - Χρησιμοποιήστε εξαρτήματα όταν χρειάζεστε ακριβή αναπαραγωγιμότητα
  • Δοκιμή σύμβασης - Πάντα να επικυρώνετε έναντι πραγματικών API για συμβάσεις παραγωγής

Τώρα που ξέρετε πού ταιριάζει, ας εξερευνήσουμε τις προηγμένες δυνατότητες.

Προχωρημένα χαρακτηριστικά

Αυτά τα χαρακτηριστικά είναι προαιρετικά - μπορείτε να πάρετε τεράστια αξία από τα βασικά μόνο. Αλλά όταν χρειάζεστε την παραγωγή-βαθμού ρεαλισμό σε κλίμακα, αυτά τα εργαλεία είναι εδώ.

Πολλαπλά συστήματα υποστήριξης LLM

Οδηγός: Πολλαπλά συστήματα υποστήριξης LLM

# Fast for dev
curl http://localhost:5000/api/mock/users

# High quality for demos
curl "http://localhost:5000/api/mock/users?backend=quality"

# Cloud AI for production-like
curl "http://localhost:5000/api/mock/users?backend=openai"

Ρυθμός περιορισμού προσομοίωσης

Οδηγός: Επιτόκιο περιορισμού & παρτίδας

Δοκιμάστε πώς η εφαρμογή σας χειρίζεται τα όρια ταχύτητας:

{
  "EnableRateLimiting": true,
  "RateLimitDelayRange": "500-2000"
}

Προσομοίωση σφάλματος

# Test 429 rate limiting
curl "http://localhost:5000/api/mock/users?error=429&errorMessage=Rate%20limit%20exceeded"

# Test 503 unavailable
curl "http://localhost:5000/api/mock/users?error=503"

Υποστηρίζει όλους τους κωδικούς 4xx και 5xx.

Απάντηση Caching

# Generate and cache 10 variants
curl "http://localhost:5000/api/mock/users?shape={\"$cache\":10,\"id\":0,\"name\":\"string\"}"

Επακόλουθες αιτήσεις λαμβάνουν άμεση cached απαντήσεις.

Χρήση δοκιμών: ως επί το πλείστον διαυγής.mockllmapi.Testing

Πακέτο: ως επί το πλείστον διαυγής.mockllmapi.Testing

Όλα τα παραπάνω χαρακτηριστικά είναι σπουδαία για την ανάπτυξη, αλλά τι γίνεται με τις αυτοματοποιημένες δοκιμές; Το συνοδευτικό πακέτο δοκιμών παρέχει ένα άπταιστο API που κάνει τις δοκιμές ενσωμάτωσης ένα αεράκι - ρυθμίστε την παρωδία συμπεριφορά δηλωτικά και αφήστε HttpClient Κάνε τα υπόλοιπα.

Εγκατάσταση

dotnet add package mostlylucid.mockllmapi.Testing

Βασική χρήση

using mostlylucid.mockllmapi.Testing;

// Create a client with a single endpoint configuration
var client = HttpClientExtensions.CreateMockLlmClient(
    baseAddress: "http://localhost:5116",
    pathPattern: "/users",
    configure: endpoint => endpoint
        .WithShape(new { id = 0, name = "", email = "" })
        .WithCache(5)
);

// Make requests - configuration is automatically applied
var response = await client.GetAsync("/users");
var users = await response.Content.ReadFromJsonAsync<User[]>();

Πολλαπλά τελικά σημεία

var client = HttpClientExtensions.CreateMockLlmClient(
    "http://localhost:5116",
    configure: handler => handler
        .ForEndpoint("/users", config => config
            .WithShape(new { id = 0, name = "", email = "" })
            .WithCache(10))
        .ForEndpoint("/posts", config => config
            .WithShape(new { id = 0, title = "", content = "", authorId = 0 })
            .WithCache(20))
        .ForEndpoint("/error", config => config
            .WithError(404, "Resource not found"))
);

// Each endpoint automatically uses its configuration
var usersResponse = await client.GetAsync("/users");
var postsResponse = await client.GetAsync("/posts");
var errorResponse = await client.GetAsync("/error"); // Returns 404

Επιλογές ρύθμισης

Ρύθμιση σχήματος:

// Using anonymous objects
.WithShape(new { id = 0, name = "", active = true })

// Using JSON strings
.WithShape("{ \"id\": 0, \"name\": \"\", \"tags\": [] }")

// Complex nested structures
.WithShape(new
{
    user = new { id = 0, name = "" },
    posts = new[] { new { id = 0, title = "" } }
})

Προσομοίωση σφάλματος:

// Simple error
.WithError(404)

// With custom message
.WithError(404, "User not found")

// With details
.WithError(422, "Validation failed", "Email address is invalid")

Streaming:

// Enable streaming with token-by-token output
.WithStreaming()
.WithSseMode("LlmTokens")

// Stream complete objects
.WithStreaming()
.WithSseMode("CompleteObjects")

// Stream array items individually
.WithStreaming()
.WithSseMode("ArrayItems")

Ένεση εξάρτησης

Πληκτρολογημένος πελάτης:

services.AddMockLlmHttpClient<IUserApiClient>(
    baseApiPath: "/api/mock",
    configure: handler => handler
        .ForEndpoint("/users", config => config
            .WithShape(new { id = 0, name = "", email = "" }))
);

Ονομάζεται Πελάτης:

services.AddMockLlmHttpClient(
    name: "MockApi",
    baseApiPath: "/api/mock",
    configure: handler => handler
        .ForEndpoint("/data", config => config
            .WithShape(new { value = 0 }))
);

// Usage
var client = httpClientFactory.CreateClient("MockApi");

Παράδειγμα δοκιμής ενσωμάτωσης

[Fact]
public async Task Should_Handle_User_Creation()
{
    // Arrange
    var client = HttpClientExtensions.CreateMockLlmClient(
        "http://localhost:5116",
        "/users",
        config => config
            .WithMethod("POST")
            .WithShape(new { id = 0, name = "", email = "", createdAt = "" })
    );

    // Act
    var newUser = new { name = "John Doe", email = "[email protected]" };
    var response = await client.PostAsJsonAsync("/users", newUser);

    // Assert
    response.EnsureSuccessStatusCode();
    var created = await response.Content.ReadFromJsonAsync<User>();
    Assert.NotNull(created);
    Assert.NotEqual(0, created.Id);
}

[Fact]
public async Task Should_Handle_Not_Found_Error()
{
    // Arrange
    var client = HttpClientExtensions.CreateMockLlmClient(
        "http://localhost:5116",
        "/users/999",
        config => config.WithError(404, "User not found")
    );

    // Act
    var response = await client.GetAsync("/users/999");

    // Assert
    Assert.Equal(HttpStatusCode.NotFound, response.StatusCode);
}

Πώς Λειτουργεί

Η MockLlmHttpHandler ί ας DelegatingHandler ότι:

  1. Αναχαιτίζει τις εξερχόμενες αιτήσεις HTTP
  2. Ταιριάζει με τα αιτήματα έναντι των ρυθμισμένων προτύπων τελικού σημείου
  3. Εισάγει τη διαμόρφωση mock μέσω παραμέτρων ερωτημάτων και κεφαλίδων HTTP
  4. Προωθεί το τροποποιημένο αίτημα στην πραγματική mocking LLM API

Αυτό σας επιτρέπει να χρησιμοποιήσετε ένα πραγματικό HttpClient στις δοκιμές σας ενώ ελέγχετε εύκολα την παρωδία API συμπεριφορά χωρίς τροποποίηση του κώδικα εφαρμογής σας.

Βέλτιστες Πρακτικές & Συμβουλές

Μετά τη συνεργασία με αυτό το εργαλείο σε πολλαπλά έργα, εδώ είναι τα πρότυπα που λειτουργούν καλύτερα:

  1. Πάντοτε να χρησιμοποιείτε τα συμφραζόμενα για ροές εργασίας - Εξασφαλίζει συνεπείς ταυτότητες και δεδομένα κατά τη διάρκεια των εργασιών πολλαπλών σταδίων
  2. Χρήση σχήματος για την ασφάλεια τύπου - Κάντε το να ταιριάζει με τις διεπαφές TypeScript σας
  3. Αναμίξτε πραγματικά και ψευδεπίγραφα δεδομένα με εργαλεία - Οι καλύτεροι και των δύο κόσμων.
  4. Επιλέξτε το σωστό μοντέλο (βλ. Οδηγός μοντέλων Ollama για πλήρεις λεπτομέρειες:
    • ΣΥΝΙΣΤΑ για dev: ministral-3:3b (3B params, 32K context) - Δολοφόνος για τον JSON! Εξαιρετικά γρήγορος, πολύ ακριβής, minimal RAM
    • Παραγωγής: llama3 (8B params, 8K context) - Καλύτερη ισορροπία ποιότητας και απόδοσης
    • Υψηλής ποιότητας: mistral-nemo (12B params, 128K context) - Σύνθετα σχήματα και μαζικά σύνολα δεδομένων
    • Περιορισένοι piόροι: gemma3:4b ή phi3 - Ελαφρύτερες εναλλακτικές λύσεις

Πλήρης τεκμηρίωση

Συμπέρασμα

Η ανάπτυξη του Frontend δεν χρειάζεται να περιμένει την υποστήριξη APIs. mostlylucid.mockllmapi σας δίνει:

  • Ανάμνηση πλαισίου@ title: window - Συστατικά, επικρατέστερα δεδομένα σε πολλαπλές ροές εργασίας
  • Έλεγχος σχήματος - Ακριβείς ορισμοί σχημάτων που ταιριάζουν με τους τύπους σας
  • Υποστήριξη καθολικού πρωτοκόλλου - REST, GraphQL, gRPC, Signer, SSE, OpenAPI
  • Υβριδικός έλεγχος - Αναμειγνύονται πραγματικά δεδομένα παραγωγής με δημιουργηθέντα ψεγάδια
  • Μηδέν συντήρηση - Δεν εξαρτήματα JSON για την ενημέρωση όταν οι απαιτήσεις αλλάζουν
  • Δοκιμασίες κοινής ωφέλειας - Fluent API για δοκιμές ενσωμάτωσης

Η διαφορά μεταξύ αυτού και του παραδοσιακού χλευασμού; Το frontend λειτουργεί ενάντια σε ρεαλιστικά, κατανοητά δεδομένα από την πρώτη μέρα.

Είτε φτιάχνεις ένα απλό blog είτε μια πολύπλοκη εφαρμογή επιχείρησης, θα ταξιδέψεις γρηγορότερα, θα δοκιμάσεις πιο διεξοδικά, και θα ταξιδέψεις με αυτοπεποίθηση.

Έτοιμος να ξεκινήσουμε;

docker compose up -d

Αυτό είναι.Δεν απαιτείται υποστήριξη.

Finding related posts...
logo

© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.