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
LLMApi: 模块架构示例
Sunday, 02 November 2025
一. 导言导言 导言 导言 导言
我对LLMApi想要的其中一件关键的事情是 它能够尽可能轻巧地轻量 \ @(}所以只是模拟你想要的Api类型)}和非常容易获得 Intp{;} 这样你就应该能同样轻松得到一切
你可以找到 吉特Hub在这里 所有公共域等 ... *
这是来自 GitHub.的现场直播,
你可以找到 吉特Hub在这里 所有公共域等 ... *
模块结构示例
新建于 v1.2.0+: 完整模块性 @! 每一个协议@(REST, Streaming}MS K3 圖形QL,SignalRMSKO5 gRPC, OpenAPI}) 现在可以独立添加并绘制
目录目录
向后对齐 \ ( 统一方法)\ {
现有代码继续工作,没有任何改动@: @ @
using mostlylucid.mockllmapi;
var builder = WebApplication.CreateBuilder(args);
// Registers ALL services (REST, Streaming, GraphQL)
builder.Services.AddLLMockApi(builder.Configuration);
// Optional: Add SignalR
builder.Services.AddLLMockSignalR(builder.Configuration);
builder.Services.AddRazorPages();
var app = builder.Build();
app.UseStaticFiles();
app.UseRouting();
app.MapRazorPages();
// Maps ALL endpoints (REST, Streaming, GraphQL) at /api/mock
app.MapLLMockApi("/api/mock", includeStreaming: true, includeGraphQL: true);
// Optional: Map SignalR
app.MapLLMockSignalR("/hub/mock", "/api/mock");
app.Run();
此创建@ : @%
/api/mock/**-+REST端点/api/mock/stream/**- SSE 流端点/api/mock/graphql- 图形QL 终点/hub/mock@-_讯号枢纽#(_if添加@)}/api/mock/contexts“-讯号管理 API @( 添加#)
模块式方法
只只保留
完全可以进行简单的REST API模拟,无需额外超载:
using mostlylucid.mockllmapi;
var builder = WebApplication.CreateBuilder(args);
// Register ONLY REST services
builder.Services.AddLLMockRest(builder.Configuration);
var app = builder.Build();
app.UseRouting();
// Map ONLY REST endpoints
app.MapLLMockRest("/api/mock");
app.Run();
此创建@ : @%
/api/mock/**仅 -REST 端点
福利:*
- 最小记忆足迹
- 快速启动时间
- 仅包括常规请求Handler
仅图解QL
适合图形QL-}只允许应用程序@:
using mostlylucid.mockllmapi;
var builder = WebApplication.CreateBuilder(args);
// Register ONLY GraphQL services
builder.Services.AddLLMockGraphQL(builder.Configuration);
var app = builder.Build();
app.UseRouting();
// Map ONLY GraphQL endpoint
app.MapLLMockGraphQL("/api/mock");
app.Run();
此创建@ : @%
/api/mock/graphql仅 -图形QL端点
福利:*
- 清洁图形QL - @ 仅设置
- 无不必要的 REST 处理器
- GraphQL 客户端测试完美
仅串流
适合测试 SSE 流客户端@: @
using mostlylucid.mockllmapi;
var builder = WebApplication.CreateBuilder(args);
// Register ONLY Streaming services
builder.Services.AddLLMockStreaming(builder.Configuration);
var app = builder.Build();
app.UseRouting();
// Map ONLY Streaming endpoints
app.MapLLMockStreaming("/api/mock");
app.Run();
此创建@ : @%
/api/mock/stream/**- SSE 只流端点
福利:*
- 轻量级串流@ - @ 仅设置
- 完全用于事件源测试
- 无REST/GraphQL 间接费用
仅信号
时间仪表板原型制作@: @%
using mostlylucid.mockllmapi;
var builder = WebApplication.CreateBuilder(args);
// Register ONLY SignalR services (includes core services automatically)
builder.Services.AddLLMockSignalR(options =>
{
options.BaseUrl = "http://localhost:11434/v1/";
options.ModelName = "llama3";
options.SignalRPushIntervalMs = 5000;
});
var app = builder.Build();
app.UseRouting();
// Map ONLY SignalR endpoints
app.MapLLMockSignalR("/hub/mock", "/api/contexts");
app.Run();
此创建@ : @%
/hub/mock- 信号枢纽/api/contexts-背景管理API
福利:*
- 仅在时间设置@ - @ title only setting
- 没有 HTTP 终端间接费用
- 适合 WebSock 测试
仅gRPC
适合测试具有动态原型定义的 GRPC 客户端@: @
using mostlylucid.mockllmapi;
var builder = WebApplication.CreateBuilder(args);
// Register services (gRPC included in AddLLMockApi)
builder.Services.AddLLMockApi(builder.Configuration);
var app = builder.Build();
app.UseRouting();
// Map ONLY gRPC endpoints
app.MapLLMockGrpcManagement("/api/grpc-protos"); // Proto file management
app.MapLLMockGrpc("/api/grpc"); // gRPC service calls
app.Run();
此创建@ : @%
/api/grpc-protos-上传@/管理 @.proto 文件 @MS K3POST}, Get,Delete)/api/grpc/{serviceName}/{methodName}- 启动模拟 GRPC 方法
福利:*
- 动态原生上传而不重新编译
- 适合GRPC客户端测试
- LLM 产生现实的原生本源响应
用法示例 @:
# 1. Upload a proto definition
curl -X POST http://localhost:5116/api/grpc-protos \
-H "Content-Type: text/plain" \
--data 'syntax = "proto3"; service UserService { rpc GetUser(GetUserRequest) returns (User); }'
# 2. Call the gRPC method
curl -X POST http://localhost:5116/api/grpc/UserService/GetUser \
-H "Content-Type: application/json" \
-d '{"user_id": 123}'
仅限 OpenAPI
完全可以模拟现有的 OpenAPI/ @Swaggerspeces@:}
using mostlylucid.mockllmapi;
var builder = WebApplication.CreateBuilder(args);
// Register ONLY OpenAPI services
builder.Services.AddLLMockOpenApi(options =>
{
options.BaseUrl = "http://localhost:11434/v1/";
options.ModelName = "llama3";
options.OpenApiSpecs = new List<OpenApiSpecConfig>
{
new OpenApiSpecConfig
{
Name = "PetStore",
Source = "https://petstore3.swagger.io/api/v3/openapi.json",
BasePath = "/api/petstore"
}
};
});
var app = builder.Build();
app.UseRouting();
// Map ONLY OpenAPI endpoints
app.MapLLMockOpenApi(); // Loads configured specs
app.MapLLMockOpenApiManagement("/api/specs"); // Dynamic spec management
app.Run();
此创建@ : @%
- 您在 OpenAPI spec 中定义的所有端点@ ( @ e @ MS K1}\ g.,} *
/api/petstore/pet/{petId}) /api/specs-上傳/管理開放API畫面動態(POST}, 得到,DELETEMS K5
福利:*
- 自动模拟整个 OpenAPI 规格
- 无需人工绘制终点点图
- 支持静态的 @ ( @ configendd)}和动态的@ MS K2_ puploaded @ MPK3}speces
- 完全适合API合同测试
API 内部管理
添加上下文历史查看和修改@: @%
using mostlylucid.mockllmapi;
var builder = WebApplication.CreateBuilder(args);
// Register REST services
builder.Services.AddLLMockRest(builder.Configuration);
var app = builder.Build();
app.UseRouting();
// Map REST endpoints
app.MapLLMockRest("/api/mock");
// Add context management API
app.MapLLMockApiContextManagement("/api/contexts");
app.Run();
此创建@ : @%
/api/mock/**-+REST端点/api/contexts/{contextId}-View @/ 修改对话框历史
福利:*
- 查看用于调试的 LLM 对话框历史
- 修改上下文以引导响应
- 要重设置状态的清晰上下文
- 适合测试状态假设情景
混合和匹配
使用时需要的组合协议@: @%
1:REST +图QL(没有流
using mostlylucid.mockllmapi;
var builder = WebApplication.CreateBuilder(args);
// Register REST and GraphQL services
builder.Services.AddLLMockRest(builder.Configuration);
builder.Services.AddLLMockGraphQL(builder.Configuration);
var app = builder.Build();
app.UseRouting();
// Map both protocols
app.MapLLMockRest("/api/mock");
app.MapLLMockGraphQL("/api/mock");
app.Run();
此创建@ : @%
/api/mock/**-+REST端点/api/mock/graphql- 图形QL 终点- 无溪流端点
“2:”图解QL @+}信号机@(没有 REST_)
using mostlylucid.mockllmapi;
var builder = WebApplication.CreateBuilder(args);
// Register GraphQL and SignalR services
builder.Services.AddLLMockGraphQL(builder.Configuration);
builder.Services.AddLLMockSignalR(builder.Configuration);
var app = builder.Build();
app.UseRouting();
// Map both protocols
app.MapLLMockGraphQL("/api/queries");
app.MapLLMockSignalR("/hub/realtime", "/api/contexts");
app.Run();
此创建@ : @%
/api/queries/graphql- 图形QL 终点/hub/realtime- 信号枢纽/api/contexts-讯号管理API- 没有 REST 或 SSE 端点
示例 “3:” 所有不同模式的事物
using mostlylucid.mockllmapi;
var builder = WebApplication.CreateBuilder(args);
// Register all services modularly
builder.Services.AddLLMockRest(builder.Configuration);
builder.Services.AddLLMockStreaming(builder.Configuration);
builder.Services.AddLLMockGraphQL(builder.Configuration);
builder.Services.AddLLMockSignalR(builder.Configuration);
var app = builder.Build();
app.UseRouting();
// Map each protocol with custom patterns
app.MapLLMockRest("/api/rest"); // /api/rest/**
app.MapLLMockStreaming("/api/stream"); // /api/stream/stream/**
app.MapLLMockGraphQL("/api/graphql"); // /api/graphql/graphql
app.MapLLMockSignalR("/hub/live", "/api/hub");
app.Run();
此创建@ : @%
/api/rest/**-+REST端点/api/stream/stream/**-SSE流/api/graphql/graphql- 图形QL 终点/hub/live- 信号枢纽/api/hub/contexts-讯号管理
4:REST +开放API @+上下文管理
using mostlylucid.mockllmapi;
var builder = WebApplication.CreateBuilder(args);
// Register REST and OpenAPI services
builder.Services.AddLLMockRest(builder.Configuration);
builder.Services.AddLLMockOpenApi(builder.Configuration);
var app = builder.Build();
app.UseRouting();
// Map all three capabilities
app.MapLLMockRest("/api/mock");
app.MapLLMockOpenApi();
app.MapLLMockApiContextManagement("/api/contexts");
app.Run();
此创建@ : @%
/api/mock/**-+REST端点- OpenAPI spec 端点 @ ( @ 来自已配置的specs@ MS K1} @
/api/contexts/{contextId}内容管理- 没有串流@ ,图形QL @ MS K1信号R,或 gRPC
5: gRPC + OpenAPI ( 议定书桥桥测试)
using mostlylucid.mockllmapi;
var builder = WebApplication.CreateBuilder(args);
// Register services for both protocols
builder.Services.AddLLMockApi(builder.Configuration); // Includes gRPC
builder.Services.AddLLMockOpenApi(builder.Configuration);
var app = builder.Build();
app.UseRouting();
// Map both protocols
app.MapLLMockGrpcManagement("/api/grpc-protos");
app.MapLLMockGrpc("/api/grpc");
app.MapLLMockOpenApi();
app.Run();
此创建@ : @%
/api/grpc-protos-+GRPC原型管理/api/grpc/{service}/{method}GRPC的电话- OpenAPI 指定端点
- 用于测试协议桥的完美操作@/}门道
例如“6: ”所有模块 “(” Full Stack 测试“MS K2”
using mostlylucid.mockllmapi;
var builder = WebApplication.CreateBuilder(args);
// Register everything modularly
builder.Services.AddLLMockRest(builder.Configuration);
builder.Services.AddLLMockStreaming(builder.Configuration);
builder.Services.AddLLMockGraphQL(builder.Configuration);
builder.Services.AddLLMockSignalR(builder.Configuration);
builder.Services.AddLLMockOpenApi(options =>
{
options.BaseUrl = "http://localhost:11434/v1/";
options.ModelName = "llama3";
options.OpenApiSpecs = new List<OpenApiSpecConfig>
{
new OpenApiSpecConfig
{
Name = "External API",
Source = "https://api.example.com/openapi.json",
BasePath = "/api/external"
}
};
});
var app = builder.Build();
app.UseRouting();
// Map everything at different paths
app.MapLLMockRest("/api/rest");
app.MapLLMockStreaming("/api/stream");
app.MapLLMockGraphQL("/api/graphql");
app.MapLLMockSignalR("/hub/realtime", "/api/hub");
app.MapLLMockOpenApi();
app.MapLLMockOpenApiManagement("/api/specs");
app.MapLLMockGrpcManagement("/api/grpc-protos");
app.MapLLMockGrpc("/api/grpc");
app.MapLLMockApiContextManagement("/api/contexts");
app.Run();
此创建@ : @%
/api/rest/**-+REST端点/api/stream/stream/**-SSE流/api/graphql/graphql- 图形QL 终点/hub/realtime- 信号枢纽/api/hub/contexts-讯号管理/api/external/**- OpenAPI 标准端点/api/specs开放API管理/api/grpc-protos-+GRPC原型管理/api/grpc/{service}/{method}GRPC的电话/api/contexts/{contextId}内容管理
完美地适合:
- 全面综合测试
- 测试微观服务结构
- 多关-protocol API网关
- 与各种客户类型开发完整-stack development
多个实例
运行多个独立的模拟API, 配置不同@ : @%
using mostlylucid.mockllmapi;
var builder = WebApplication.CreateBuilder(args);
// Development endpoints - high randomness
builder.Services.AddLLMockRest(options =>
{
options.BaseUrl = "http://localhost:11434/v1/";
options.ModelName = "llama3";
options.Temperature = 1.5;
});
builder.Services.AddLLMockGraphQL(options =>
{
options.BaseUrl = "http://localhost:11434/v1/";
options.ModelName = "llama3";
options.Temperature = 1.5;
});
var app = builder.Build();
app.UseRouting();
// Development endpoints
app.MapLLMockRest("/api/dev");
app.MapLLMockGraphQL("/api/dev");
// Stable test endpoints (would need separate config)
app.MapLLMockRest("/api/test");
app.MapLLMockGraphQL("/api/test");
app.Run();
模块化方法的惠益
1. 减少内存足印
只装入您实际使用的“ :” 处理器@ action
- 仅REST 仅@: @ @ @ ~30%# 小于内存
- 仅图形QL@: @ ~40%}小于内存
- 只串流@ : @ *\ MS K1} 减少内存
2. 快速启动
注册@ = @ 快速程序启动服务更少
3. 更清晰的意图
代码明确显示您应用程序使用的协议
4. 较易测试
单独测试协议@: @%
// Test file for REST only
builder.Services.AddLLMockRest(config);
app.MapLLMockRest("/api/mock");
// Test file for GraphQL only
builder.Services.AddLLMockGraphQL(config);
app.MapLLMockGraphQL("/api/mock");
5. 无断断更改
现有代码继续工作
// This still works exactly as before
builder.Services.AddLLMockApi(configuration);
app.MapLLMockApi("/api/mock");
6. 灵活模式
在任何路径上挂载协议@: @%
app.MapLLMockRest("/rest");
app.MapLLMockGraphQL("/gql");
app.MapLLMockStreaming("/events");
app.MapLLMockSignalR("/ws", "/manage");
《移徙指南指南》
从v1.1.0到 vMS K1
无需更改@! @% 您现有的代码以 @ - @is@ MS K1} 有效 。
可选性:: 移动到模块化的受益方式
在“(”之前
builder.Services.AddLLMockApi(builder.Configuration);
app.MapLLMockApi("/api/mock", includeStreaming: true, includeGraphQL: true);
在“(v1.2.0”之后
// Only include what you need
builder.Services.AddLLMockRest(builder.Configuration);
builder.Services.AddLLMockGraphQL(builder.Configuration);
app.MapLLMockRest("/api/mock");
app.MapLLMockGraphQL("/api/mock");
这两种方法同样有效,但模块法更明确、效率更高。
摘要摘要
核心礼宾事务
| “ | ” 接近“ | ” 添加方法“MS K2” 地图方法“ | ” 使用大小写“MSC4” | |
|---|---|---|---|---|
| 统一 | AddLLMockApi() |
MapLLMockApi() -=YTET -伊甸园字幕组=- 翻译: |
||
| 休息 | AddLLMockRest() |
MapLLMockRest() @ |
#简单休息,嘲弄 # | # |
| 图QL | AddLLMockGraphQL() |
MapLLMockGraphQL() @ |
_ 图QL-}只使用应用程序@ | { |
| 串流 | AddLLMockStreaming() |
MapLLMockStreaming() |
SSE流 仅 | |
| 信号R | AddLLMockSignalR() |
MapLLMockSignalR() @ |
@ real@-_时间网络软体数据 @ | # |
| Op开放API | AddLLMockOpenApi() |
MapLLMockOpenApi() 由 OpenAPI @/_Swagger speases@ |
}來自OpenAPI#MSK 1_spects_ | mock}(來自 OptionAPI#MSPI% MS K1_ Swagger species < MSK2- } 來自 OmployAppi+MSK_ MSGQ_ MISC_ 来自 OpanAPI} MSk0_ mock_ |
附加特性 @ (_ 无添加方法 需要@ MSC1} @
| 使用大小写 @ | |||
|---|---|---|---|
| gRPPC 管理 | MapLLMockGrpcManagement() |
上传@/管理 @.proto 文件 @MS K3 | |
| gRPPC 调用 | MapLLMockGrpc() @ |
_Invoke 模拟 GRPC 方法@ | _# |
| OpenAPIP 管理 | MapLLMockOpenApiManagement() |
动态装入 OpenAPI spets | |
| 内容管理 | MapLLMockApiContextManagement() |
View @/ 修改LLM对话历史@ |
注::
- g/RPPC服务包括:
AddLLMockApi()分开绘制 - OpenAPI 管理允许在运行时进行动态套装
- 与保持对话状态的任何协议进行背景管理
- 所有特征可以混合,并视需要加以配合
选择最适合您需要的方法@! @