This is a viewer only at the moment see the article on how this works.
To update the preview hit Ctrl-Alt-R (or ⌘-Alt-R on Mac) or Enter to refresh. The Save icon lets you save the markdown file to disk
This is a preview from the server running through my markdig pipeline
Unterstützung der gRPC Mock API mit Protokollpuffern
Thursday, 06 November 2025
Einleitung
Dies ist die Dokumentation für die gRPC Mock API-Unterstützung in LLMApi-.
HINWEIS:- Dies ist die Live von GitHub-.-Es wird KI erzeugt.
Sie können die GitHub hier für das Projekt – alle öffentlichen Bereiche usw. –
gRPC Mock API Unterstützung mit Protokollpuffern
LLMock API bietet jetzt umfassende gRPC-Unterstützung ., , so dass Sie gRPC-Dienste dynamisch zu verspotten, ohne irgendwelche Service-Implementierungen zu schreiben . .proto files., und der Mock-Server behandelt den Rest , um realistische Antworten basierend auf Ihren Protobuf-Meldungsdefinitionen zu generieren.
Überblick
Das gRPC-Feature unterstützt zwei komplementäre Ansätze
- JSON über HTTP Perfekt für Browser-Tests und schnelle Prototyping
- Binäre Protokollpuffer Echtes gRPC-Drahtprotokoll für die Produktion - Tests mit echten GRPC Kunden
Beide Ansätze verwenden das gleiche hochgeladene .proto Definitionen und LLM---generierte Antworten, die Ihnen Flexibilität geben, wie Sie testen.
graph TD
A[Upload .proto File] --> B[Proto Parser]
B --> C[Service Definitions Stored]
C --> D{Client Request Type?}
D -->|JSON| E[JSON Endpoint]
D -->|Binary Protobuf| F[Binary Endpoint]
E --> G[LLM Generates Response]
F --> G
G --> H{Output Format?}
H -->|JSON| I[Return JSON]
H -->|Binary| J[Serialize to Protobuf]
J --> K[Return Binary Response]
Schnellstart
Eine Proto-Datei hochladen
Definieren Sie zuerst Ihren gRPC-Dienst in einem .proto Datei„ :"
syntax = "proto3";
package userservice;
service UserService {
rpc GetUser (GetUserRequest) returns (User);
rpc ListUsers (ListUsersRequest) returns (UserList);
rpc CreateUser (CreateUserRequest) returns (User);
}
message GetUserRequest {
int32 user_id = 1;
}
message ListUsersRequest {
int32 page = 1;
int32 page_size = 2;
optional string filter = 3;
}
message CreateUserRequest {
string name = 1;
string email = 2;
optional string phone = 3;
}
message User {
int32 id = 1;
string name = 2;
string email = 3;
optional string phone = 4;
string created_at = 5;
bool is_active = 6;
}
message UserList {
repeated User users = 1;
int32 total_count = 2;
int32 page = 3;
}
Laden Sie diese Proto-Datei auf den Mock-Server.
# Upload via plain text body
curl -X POST http://localhost:5116/api/grpc-protos \
-H "Content-Type: text/plain" \
--data-binary "@user_service.proto"
# Or upload as multipart form
curl -X POST http://localhost:5116/api/grpc-protos \
-F "file=@user_service.proto"
Die Antwort zeigt Ihre Service-Struktur
{
"message": "Proto definition uploaded successfully",
"name": "user_service.proto",
"package": "userservice",
"services": [
{
"name": "UserService",
"methods": [
{
"name": "GetUser",
"type": "Unary",
"input": "GetUserRequest",
"output": "User"
},
{
"name": "ListUsers",
"type": "Unary",
"input": "ListUsersRequest",
"output": "UserList"
},
{
"name": "CreateUser",
"type": "Unary",
"input": "CreateUserRequest",
"output": "User"
}
]
}
]
}
Anrufverfahren . . - . JSON über HTTP
Für schnelles Testen und Browser-basierte Clients verwenden Sie die JSON-Endpunkte.
# Get a user (JSON request/response)
curl -X POST http://localhost:5116/api/grpc/UserService/GetUser \
-H "Content-Type: application/json" \
-d '{"user_id": 12345}'
Das LLM erzeugt eine realistische Antwort passend zu Ihrer Proto-Definition.
{
"id": 12345,
"name": "Sarah Chen",
"email": "[email protected]",
"phone": "+1-555-0142",
"created_at": "2024-03-15T10:30:00Z",
"is_active": true
}
Anrufverfahren ---Binäre Protokollpuffer
Für die Produktion - --ähnliche Prüfung mit echtem gRPC Drahtprotokoll - MSC1-
# Create a binary Protobuf request (example using protoc)
echo '{"user_id": 12345}' | \
protoc --encode=userservice.GetUserRequest user_service.proto > request.bin
# Send binary request, get binary response
curl -X POST http://localhost:5116/api/grpc/proto/UserService/GetUser \
-H "Content-Type: application/grpc+proto" \
--data-binary "@request.bin" \
--output response.bin
# Decode binary response
protoc --decode=userservice.User user_service.proto < response.bin
Ausgabe„ :"
id: 12345
name: "Sarah Chen"
email: "[email protected]"
phone: "+1-555-0142"
created_at: "2024-03-15T10:30:00Z"
is_active: true
Wie es funktioniert
Protokolldatei Parsing
Wenn Sie eine .proto Die Datei Mock Server parsiert sie, um zu extrahieren
- Begriffsbestimmungen für Dienstleistungen
- Signaturen der RPC-Methode
- Definitionen des Nachrichtentyps
- Feldtypen und -nummern
sequenceDiagram
participant Client
participant ProtoManager
participant ProtoParser
participant Storage
Client->>ProtoManager: Upload user_service.proto
ProtoManager->>ProtoParser: Parse(content)
ProtoParser->>ProtoParser: Extract syntax/package
ProtoParser->>ProtoParser: Parse services
ProtoParser->>ProtoParser: Parse messages
ProtoParser->>ProtoManager: Return ProtoDefinition
ProtoManager->>Storage: Store in ConcurrentDictionary
ProtoManager->>Client: Return success + metadata
Der Parser verwendet regex-basierte Extraktion, um Protoelemente zu identifizieren.
// Service extraction
var serviceRegex = new Regex(
@"service\s+([a-zA-Z0-9_]+)\s*\{([^}]+)\}",
RegexOptions.Singleline);
// Method extraction
var methodRegex = new Regex(
@"rpc\s+([a-zA-Z0-9_]+)\s*\(\s*(stream\s+)?([a-zA-Z0-9_.]+)\s*\)" +
@"\s*returns\s*\(\s*(stream\s+)?([a-zA-Z0-9_.]+)\s*\)");
// Message extraction
var messageRegex = new Regex(
@"message\s+([a-zA-Z0-9_]+)\s*\{([^}]+)\}",
RegexOptions.Singleline);
Antrag auf Bearbeitungsfluss
JSON-Endpunkte
sequenceDiagram
participant Client
participant Endpoint
participant GrpcHandler
participant ProtoManager
participant LLM
Client->>Endpoint: POST /api/grpc/UserService/GetUser<br/>(JSON body)
Endpoint->>ProtoManager: FindMethod(UserService, GetUser)
ProtoManager->>Endpoint: Return method definition
Endpoint->>GrpcHandler: HandleUnaryCall(service, method, json)
GrpcHandler->>ProtoManager: GetMessage(User)
ProtoManager->>GrpcHandler: Return message schema
GrpcHandler->>GrpcHandler: Build LLM prompt with schema
GrpcHandler->>LLM: Generate response for User message
LLM->>GrpcHandler: Return JSON response
GrpcHandler->>Endpoint: Extract and return JSON
Endpoint->>Client: JSON response
Der Handler baut eine detaillierte Eingabeaufforderung für das LLM-:
var prompt = $@"You are a gRPC service mock. Generate realistic data for this response.
Service: {serviceName}
Method: {methodName}
Request: {requestJson}
Generate a response matching this structure:
{jsonShape}
Return ONLY valid JSON matching the structure above. Be creative with realistic values.";
Binary Protobuf Endpunkte
sequenceDiagram
participant Client
participant Endpoint
participant GrpcHandler
participant ProtobufHandler
participant LLM
Client->>Endpoint: POST /api/grpc/proto/UserService/GetUser<br/>(Binary Protobuf)
Endpoint->>GrpcHandler: HandleUnaryCallBinary(service, method, bytes)
GrpcHandler->>ProtobufHandler: CreateJsonTemplate(inputMessage)
ProtobufHandler->>GrpcHandler: Return JSON template
GrpcHandler->>LLM: Generate response (same as JSON flow)
LLM->>GrpcHandler: Return JSON response
GrpcHandler->>ProtobufHandler: SerializeFromJson(json, outputMessage)
ProtobufHandler->>ProtobufHandler: Write Protobuf binary format
ProtobufHandler->>GrpcHandler: Return binary bytes
GrpcHandler->>Endpoint: Return binary Protobuf
Endpoint->>Client: Binary response (application/grpc+proto)
Protokoll Puffer Serialisierung
Das DynamicProtobufHandler konvertiert JSON in binäres Protobuf-Format mit Felddefinitionen
public byte[] SerializeFromJson(
string json,
ProtoMessage messageDefinition,
List<ProtoMessage> allMessages)
{
var jsonDoc = JsonDocument.Parse(json);
using var stream = new MemoryStream();
using var writer = new CodedOutputStream(stream);
// Write each field according to proto definition
foreach (var field in messageDefinition.Fields.OrderBy(f => f.Number))
{
if (!jsonDoc.RootElement.TryGetProperty(field.Name, out var fieldValue))
continue; // Skip missing fields
WriteField(writer, field, fieldValue, allMessages);
}
writer.Flush();
return stream.ToArray();
}
Drahttypen werden durch den Feldtyp bestimmt.
private WireFormat.WireType GetWireType(string fieldType)
{
return fieldType switch
{
"string" or "bytes" => WireFormat.WireType.LengthDelimited,
"int32" or "int64" or "uint32" or "uint64" or
"sint32" or "sint64" or "bool" => WireFormat.WireType.Varint,
"fixed32" or "sfixed32" or "float" => WireFormat.WireType.Fixed32,
"fixed64" or "sfixed64" or "double" => WireFormat.WireType.Fixed64,
_ => WireFormat.WireType.LengthDelimited // Complex/nested types
};
}
Management-API
Das gRPC-Feature enthält eine vollständige Management-API für die Arbeit mit Protodefinitionen.
Alle Protos auflisten
curl http://localhost:5116/api/grpc-protos
Ansprechrate
{
"definitions": [
{
"name": "user_service.proto",
"package": "userservice",
"syntax": "proto3",
"uploadedAt": "2025-01-05T20:30:00Z",
"serviceCount": 1,
"messageCount": 5,
"services": ["UserService"]
}
],
"count": 1
}
Proto Details erhalten
curl http://localhost:5116/api/grpc-protos/user_service.proto
Gibt vollständige Details einschließlich aller Dienste zurück.
Proto löschen
curl -X DELETE http://localhost:5116/api/grpc-protos/user_service.proto
Alle Protos löschen
curl -X DELETE http://localhost:5116/api/grpc-protos
API-Endpunktereferenz
Endpunkte des Proto-Managements
Verfahren zur Bestimmung des Endpunkts
|--------|----------|-------------|
| POST | /api/grpc-protos Hochladen einer Datei mit einem Text oder mehreren Teilen von )
| GET | /api/grpc-protos Alle hochgeladenen Proto-Definitionen auflisten
| GET | /api/grpc-protos/{name} Details zu einem bestimmten Proto erhalten
| DELETE | /api/grpc-protos/{name} Löschen einer bestimmten Proto-Definition
| DELETE | /api/grpc-protos Alle Proto-Definitionen löschen
gRPC Service Call Endpunkte
Verfahren zur Bestimmung des Endpunkts
|--------|----------|-------------|
| POST | /api/grpc/{service}/{method} Methode mit JSON-Anforderung aufrufen
| POST | /api/grpc/proto/{service}/{method} Methode zur Invoke-Methode mit binärer Protobuf-Anfrage
Erweiterte Beispiele
Komplexe verschachtelte Nachrichten
syntax = "proto3";
package orderservice;
service OrderService {
rpc CreateOrder (OrderRequest) returns (Order);
}
message OrderRequest {
string customer_id = 1;
repeated OrderItem items = 2;
Address shipping_address = 3;
PaymentInfo payment = 4;
}
message OrderItem {
string product_id = 1;
int32 quantity = 2;
double unit_price = 3;
}
message Address {
string street = 1;
string city = 2;
string state = 3;
string postal_code = 4;
string country = 5;
}
message PaymentInfo {
string method = 1;
string last_four_digits = 2;
}
message Order {
string order_id = 1;
string customer_id = 2;
repeated OrderItem items = 3;
Address shipping_address = 4;
string status = 5;
double total_amount = 6;
string created_at = 7;
}
Anruf mit verschachtelten JSON-:
curl -X POST http://localhost:5116/api/grpc/OrderService/CreateOrder \
-H "Content-Type: application/json" \
-d '{
"customer_id": "CUST-12345",
"items": [
{
"product_id": "PROD-001",
"quantity": 2,
"unit_price": 29.99
},
{
"product_id": "PROD-042",
"quantity": 1,
"unit_price": 149.99
}
],
"shipping_address": {
"street": "123 Main Street",
"city": "San Francisco",
"state": "CA",
"postal_code": "94102",
"country": "USA"
},
"payment": {
"method": "credit_card",
"last_four_digits": "4242"
}
}'
Das LLM erzeugt eine realistische Ordnungsreaktion mit allen verschachtelten Feldern, die bevölkert sind.
Wiederholte Felder und Arrays
Der Proto Parser verarbeitet wiederholte Felder automatisch.
message ProductList {
repeated Product products = 1;
int32 total_count = 2;
}
message Product {
string id = 1;
string name = 2;
double price = 3;
repeated string tags = 4;
}
Antwort mit mehreren verschachtelten Arrays
{
"products": [
{
"id": "PROD-001",
"name": "Wireless Mouse",
"price": 29.99,
"tags": ["electronics", "peripherals", "wireless"]
},
{
"id": "PROD-002",
"name": "Mechanical Keyboard",
"price": 149.99,
"tags": ["electronics", "peripherals", "gaming"]
}
],
"total_count": 47
}
Einrichtung
Fügen Sie gRPC-Unterstützung zu Ihrer ASP..-NET Core-Anwendung hinzu.
using mostlylucid.mockllmapi;
var builder = WebApplication.CreateBuilder(args);
// Add LLMock API services (includes gRPC)
builder.Services.AddLLMockApi(builder.Configuration);
var app = builder.Build();
// Map proto management endpoints
app.MapLLMockGrpcManagement("/api/grpc-protos");
// Map gRPC service call endpoints (both JSON and binary)
app.MapLLMockGrpc("/api/grpc");
app.Run();
Das AddLLMockApi() Methode registriert sich automatisch
ProtoDefinitionManagerVerwaltet hochgeladene Proto-DefinitionenProtoParserParsen von .-ProtodateienDynamicProtobufHandlerVerwendet binäre Protobuf SerialisierungGrpcRequestHandlerVerfahren der gRPC-Methode Anrufe
Derzeitige Beschränkungen
Nur Unary Calls
Die derzeitige Umsetzung unterstützt nur unary RPC-Aufrufe Die Streaming-Methoden sind parsed, aber noch nicht implementiert.
service DataService {
// Supported
rpc GetData (Request) returns (Response);
// Not yet supported
rpc StreamData (Request) returns (stream Response);
rpc UploadData (stream Request) returns (Response);
rpc BidirectionalStream (stream Request) returns (stream Response);
}
Versucht, eine Streaming-Methode zu aufrufen, gibt einen Fehler zurück.
{
"error": "Method StreamData is not a unary call. Type: ServerStreaming"
}
Vereinfachtes Protobuf Parsing
Die binäre Protobuf-Implementierung wird vereinfacht
Parsing-AntragAktuell verwendet eine JSON-Vorlage, anstatt die tatsächliche binäre Protobuf-Anforderung zu parsieren.Das funktioniert für realistische Antworten zu generieren, aber nicht die eingehenden Binärdaten zu validieren.
Serialisierung des AnsprechverhaltensGenau serialisiert JSON zum binären Prototyp-Format nach Drahttypen und Feldnummern.
Vollständiges Request-Parsing würde zusätzliche Komplexität erfordern, um variablen Umgang mit -?Längenkodierung?
Unterstützung für Proto-Dateiformat
Der Parser unterstützt gemeinsame Proto-Funktionen, hat aber Einschränkungen.
Unterstützte :
- Grundlegende Feldtypen (-String-,-Int.32,- Int.64,-Uint.32,-Uint. 64,-Bool-,-Float-MSC7-Double-,-Bytes)
- Wiederholte Felder
- Optionale Felder
- Verschachtelte Nachrichten
- Dienstleistungen mit einfachen Methoden
Nicht unterstützt
- Enums, geparst, aber nicht validiert
- Karten, die noch nicht implementiert sind
- Eines davon nicht parsiert
- Erweiterungen nicht parsiert
- Optionen und Anmerkungen
- Import-Anweisungen Nicht aufgelöst
gRPC Server-Reflexion im Fortschritt
Standard gRPC-Clients erwarten, dass Server die gRPC Server Reflektionsprotokoll.
Aktueller Status
- Reflektionsinfrastruktur unter Verwendung von
protobuf-net.Reflection(-v-3.2.52)- - Proto-Dateien werden zu kompiliert
FileDescriptorSetbeim Hochladen GrpcReflectionServicespeichert und verwaltet kompilierte Deskriptoren- Integration mit
ProtoDefinitionManagervollständig
Was funktioniert?
- Dynamische Proto-Compilation-Tools Hochgeladen
.protoDateien werden zur Laufzeit geparst und kompiliert - Descriptor storage-DateiDescriptorSet Objekte werden generiert und zwischengespeichert
- Management-API-:
GET /api/grpc-protoslistet alle hochgeladenen Proto-Dateien mit vollständigen Details auf - JSON-Endpunkt: Vollservice-Erkennung und -Test über HTTP-/.JSON
- Demoseite:-Interactive UI zeigt alle verfügbaren Dienste und Methoden
Was ist im Fortschritt?
- Standard gRPC-Reflektionsendpunkt Mapping
grpc.reflection.v1alpha.ServerReflectionDienstleistungen - Volle grpcurl Integration ohne Notwendigkeit
-protoFlagge
Technische Umsetzung
Wenn Sie eine .proto Datei,- das System:-
- Parses das Proto Verwendung von regex---basierten
ProtoParserfür JSON-/-HTTP-Endpunkte - Zusammenstellungen zur Reflexion Verwendung von Protobuf---net®.-Reflektionen
FileDescriptorSet:var fileSet = new FileDescriptorSet { ImportPath = { "." } }; fileSet.Add(protoName, true, new StringReader(protoContent)); fileSet.Process(); // Compiles the .proto file - Umwandelt Deskriptoren zwischen Protobuf-Formaten für die Kompatibilität
- Speichert beide Darstellungen für Dual---Protokoll Unterstützung
Aktuelle Workarounds
# Provide proto file manually to grpcurl (always works)
grpcurl -proto yourfile.proto localhost:5116 list
# Use the JSON endpoint for testing (no grpcurl needed)
curl http://localhost:5116/api/grpc/UserService/GetUser \
-H "Content-Type: application/json" \
-d '{"user_id": 123}'
# Check available services via management API
curl http://localhost:5116/api/grpc-protos
# Use the interactive demo page at http://localhost:5116/Grpc
Warum nicht vollständig?
Das gRPC-Reflektionsprotokoll erfordert:
- Kartierung der
ServerReflectionRPC-Service zur Bearbeitung von Reflexionsabfragen - Korrekte Umsetzung aller Reflexionsmethoden ListeServicesByFilename, usw..)
- Integration mit der Server-Infrastruktur von ASP-.-NET Core gRPC
Die Stiftung ist an Ort und Stelle.Die Protokolldateien sind kompiliert und es stehen Deskriptoren zur Verfügung.Die restlichen Arbeiten umfassen die Kartierung des Reflektionsserviceendpunktes und die Gewährleistung der Kompatibilität mit Tools wie grpcurl für Service-Discovery.
Prüfstrategien
Browser-Test mit JSON
Für schnelle Iteration während der Entwicklung
// Fetch API in browser
async function getUser(userId) {
const response = await fetch(`http://localhost:5116/api/grpc/UserService/GetUser`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ user_id: userId })
});
return await response.json();
}
const user = await getUser(12345);
console.log(user);
Integrationstests mit Binär
Für realistischere Tests, die mit der Produktion übereinstimmen
#!/bin/bash
# Generate binary request
echo '{"user_id": 12345}' | \
protoc --encode=userservice.GetUserRequest user_service.proto > request.bin
# Call binary endpoint
curl -X POST http://localhost:5116/api/grpc/proto/UserService/GetUser \
-H "Content-Type: application/grpc+proto" \
--data-binary "@request.bin" \
--output response.bin
# Decode and verify
protoc --decode=userservice.User user_service.proto < response.bin
# Clean up
rm request.bin response.bin
Automatisierte Prüfung
Beispiel xUnit test
[Fact]
public async Task GrpcService_GetUser_ReturnsValidUser()
{
// Arrange
var protoContent = File.ReadAllText("user_service.proto");
await _client.PostAsync("/api/grpc-protos",
new StringContent(protoContent, Encoding.UTF8, "text/plain"));
var request = new { user_id = 12345 };
// Act
var response = await _client.PostAsJsonAsync(
"/api/grpc/UserService/GetUser", request);
// Assert
Assert.Equal(HttpStatusCode.OK, response.StatusCode);
var user = await response.Content.ReadFromJsonAsync<JsonElement>();
Assert.True(user.TryGetProperty("id", out _));
Assert.True(user.TryGetProperty("name", out _));
Assert.True(user.TryGetProperty("email", out _));
}
Fehlerbehebung
Proto-Upload fehlgeschlagen
SymptomeFehler beim Hochladen der Datei .
{
"error": "No proto content provided"
}
LösungVergewissern Sie sich, dass Sie den Proto-Dateiinhalt korrekt senden
- Als reiner Text
Content-Type: text/plain - Als mehrteilige Form
Content-Type: multipart/form-data
Methode nicht gefunden
Symptome:
{
"error": "Method UserService/GetUser not found. Upload proto file first."
}
Lösung:
- Überprüfen Sie Proto wurde hochgeladen
GET /api/grpc-protos - Prüfen Sie Service- und Methodennamen entsprechen genau (.case.-.sensitiv).
- Vergewissern Sie sich, dass der Methodentyp unär ist.
Ungültige JSON beim Ansprechen
SymptomeLLM gibt missgebildete JSON zurück
Dies kann gelegentlich bei komplexen verschachtelten Strukturen auftreten.Der Mock-Server versucht JSON aus der LLM-Response zu extrahieren, aber manchmal enthält das LLM zusätzliche Texte oder Formatierungen.
Lösung:
- Wiederholen Sie die Anfrage Antworten variieren
- Vereinfachung der Nachrichtenstruktur
- Überprüfen Sie, ob das LLM korrekt in Appsettings konfiguriert ist
Binary Prototyp Fehler
SymptomeBinärer Endpunkt liefert Fehler oder fehlerhafte Daten zurück
Lösung:
- Überprüfen Sie die korrekte Codierung der Anfrage mit
protoc - Überprüfen Sie den Content-Header von -
application/grpc+proto - Stellen Sie sicher, dass die Proto-Datei mit der Nachrichtenstruktur übereinstimmt
Leistungsbeurteilungen
Protokoll-Parsing
Proto-Dateien werden einmal beim Hochladen geparst und im Speicher gespeichert.
// Singleton storage
private readonly ConcurrentDictionary<string, ProtoDefinition> _definitions = new();
LLM Anruf Overhead
Jeder Aufruf der gRPC-Methode löst eine LLM-Anfrage aus.
- Betrachten Sie Caching-Antworten für identische Anfragen
- Verwenden Sie das Kontext-Feature, um Konsistenz zu erhalten
- LLM-Timeout-Einstellungen bei Bedarf anpassen
Binäre Serialisierung
Binary Protobuf Serialisierung fügt minimalen Overhead im Vergleich zu JSON-....
- JSONSchnellere Serialisierung – einfacheres Debuggen
- BinärstoffWeitere realistische Ergebnisse bei kleineren Nutzlasten
Künftige Verbesserungen
Geplante Merkmale
- Server-Streaming Unterstützung für
returns (stream Response)Methoden - Client-Streaming Unterstützung für
(stream Request) returnsMethoden - Bidirektionales Streaming Volles Duplex-Streaming
- gRPC Reflexion Standard-Reflektionsprotokoll für Werkzeugkompatibilität
- Antrag auf Validierung PARSE und validieren eingehende binäre Prototyp-Anfragen
- Verbesserte Proto-Unterstützung Importe aus der EU
- Ansprech-Caching Optionales Caching für deterministische Reaktionen
Beitrag
Finden Sie einen Fehler oder möchten beitragen Überprüfen Sie das GitHub-Repository für Beitragsrichtlinien
Zusammenfassung
Die gRPC-Mock API-Funktion bietet eine leistungsstarke Möglichkeit, gRPC-Dienste zu testen, ohne sie umzusetzen.
- Upload-Dateien und sofort Arbeits mock Dienstleistungen
- Wählen Sie zwischen JSON, (, Convenience, ) oder binären Prototypen.
- LLM.-.generierte Antworten entsprechen Ihren Nachrichtenschemas
- Vollständige Management-API für Proto-Definitionen
- Integriert nahtlos mit vorhandenen LLMock API-Funktionen
Egal ob Sie schnelles Browser-Testen oder das Bauen umfassender Integrationstestsuiten machen – der duale JSON und binäre Support gibt Ihnen die Flexibilität zu arbeiten, passt jedoch am besten zu Ihrem Workflow.