86 lines
4.0 KiB
C#
86 lines
4.0 KiB
C#
using OrpaonVision.Core.Results;
|
|
using OrpaonVision.Core.Validation;
|
|
|
|
namespace OrpaonVision.Core.Validation;
|
|
|
|
/// <summary>
|
|
/// JSON Schema验证服务接口。
|
|
/// </summary>
|
|
public interface IJsonSchemaValidator
|
|
{
|
|
/// <summary>
|
|
/// 验证JSON字符串是否符合指定Schema。
|
|
/// </summary>
|
|
/// <param name="jsonString">要验证的JSON字符串。</param>
|
|
/// <param name="schemaType">Schema类型。</param>
|
|
/// <param name="schemaVersion">Schema版本。</param>
|
|
/// <param name="cancellationToken">取消令牌。</param>
|
|
/// <returns>验证结果。</returns>
|
|
Task<Result<JsonSchemaValidationResult>> ValidateAsync(string jsonString, string schemaType, string schemaVersion = "1.0", CancellationToken cancellationToken = default);
|
|
|
|
/// <summary>
|
|
/// 验证配置快照JSON。
|
|
/// </summary>
|
|
/// <param name="snapshotJson">快照JSON字符串。</param>
|
|
/// <param name="snapshotType">快照类型。</param>
|
|
/// <param name="cancellationToken">取消令牌。</param>
|
|
/// <returns>验证结果。</returns>
|
|
Task<Result<JsonSchemaValidationResult>> ValidateSnapshotAsync(string snapshotJson, string snapshotType, CancellationToken cancellationToken = default);
|
|
|
|
/// <summary>
|
|
/// 验证规则配置JSON。
|
|
/// </summary>
|
|
/// <param name="ruleJson">规则JSON字符串。</param>
|
|
/// <param name="ruleType">规则类型。</param>
|
|
/// <param name="cancellationToken">取消令牌。</param>
|
|
/// <returns>验证结果。</returns>
|
|
Task<Result<JsonSchemaValidationResult>> ValidateRuleAsync(string ruleJson, string ruleType, CancellationToken cancellationToken = default);
|
|
|
|
/// <summary>
|
|
/// 验证推理结果JSON。
|
|
/// </summary>
|
|
/// <param name="inferenceJson">推理结果JSON字符串。</param>
|
|
/// <param name="modelType">模型类型。</param>
|
|
/// <param name="cancellationToken">取消令牌。</param>
|
|
/// <returns>验证结果。</returns>
|
|
Task<Result<JsonSchemaValidationResult>> ValidateInferenceResultAsync(string inferenceJson, string modelType, CancellationToken cancellationToken = default);
|
|
|
|
/// <summary>
|
|
/// 获取支持的Schema类型列表。
|
|
/// </summary>
|
|
/// <param name="cancellationToken">取消令牌。</param>
|
|
/// <returns>Schema类型列表。</returns>
|
|
Task<Result<IReadOnlyList<string>>> GetSupportedSchemaTypesAsync(CancellationToken cancellationToken = default);
|
|
|
|
/// <summary>
|
|
/// 获取Schema定义。
|
|
/// </summary>
|
|
/// <param name="schemaType">Schema类型。</param>
|
|
/// <param name="schemaVersion">Schema版本。</param>
|
|
/// <param name="cancellationToken">取消令牌。</param>
|
|
/// <returns>Schema定义。</returns>
|
|
Task<Result<string>> GetSchemaAsync(string schemaType, string schemaVersion = "1.0", CancellationToken cancellationToken = default);
|
|
|
|
/// <summary>
|
|
/// 验证并转换JSON为强类型对象。
|
|
/// </summary>
|
|
/// <typeparam name="T">目标类型。</typeparam>
|
|
/// <param name="jsonString">JSON字符串。</param>
|
|
/// <param name="schemaType">Schema类型。</param>
|
|
/// <param name="schemaVersion">Schema版本。</param>
|
|
/// <param name="cancellationToken">取消令牌。</param>
|
|
/// <returns>转换结果。</returns>
|
|
Task<Result<T>> ValidateAndDeserializeAsync<T>(string jsonString, string schemaType, string schemaVersion = "1.0", CancellationToken cancellationToken = default) where T : class;
|
|
|
|
/// <summary>
|
|
/// 验证强类型对象并序列化为JSON。
|
|
/// </summary>
|
|
/// <typeparam name="T">源类型。</typeparam>
|
|
/// <param name="obj">要验证的对象。</param>
|
|
/// <param name="schemaType">Schema类型。</param>
|
|
/// <param name="schemaVersion">Schema版本。</param>
|
|
/// <param name="cancellationToken">取消令牌。</param>
|
|
/// <returns>序列化结果。</returns>
|
|
Task<Result<string>> ValidateAndSerializeAsync<T>(T obj, string schemaType, string schemaVersion = "1.0", CancellationToken cancellationToken = default) where T : class;
|
|
}
|