我们正在实施Sabre REST API,以在我们的C#ASP.NET MVC应用程序中访问飞机,酒店和车辆的内容。

到目前为止,从Saber Dev Studio提供的JSON Schema文档生成C#模型类时,我们遇到了一些问题。我们正在使用Quicktype CLI(https://quicktype.io/)生成模型类。

到目前为止,我们已执行的步骤:


OTA_AirLowFareSearchRQ.jsonschemaOTA_AirLowFareSearchRS.jsonschema文件下载到文件夹中。
使用PowerShell浏览到该文件夹​​并调用quicktype -s schema OTA_AirLowFareSearchRQ.jsonschema OTA_AirLowFareSearchRS.jsonschema -o SabreAirLowFareSearch.cs


不幸的是,它失败并显示消息“错误:试图创建一个空的联合-模式中是否存在不可能的类型?”。这似乎与OTA_AirLowFareSearchRQ.jsonschema隔离。

是否有工具或最佳实践可从JSON模式文档成功生成C#模型类?

最佳答案

我已经导入了NuGet软件包:


新泽西州
NJsonSchema.CodeGeneration
NJsonSchema.CodeGeneration.CSharp


并完成以下代码:

using System;
using System.Threading.Tasks;
using NJsonSchema;
using NJsonSchema.CodeGeneration.CSharp;

namespace RunningTestings
{
    class Program
    {
        static void Main(string[] args)
        {
            CreateClassfromJsonSchema(@"http://files.developer.sabre.com/doc/providerdoc/STPS/bfm/v410/OTA_AirLowFareSearchRQ.jsonschema").Wait();
        }

        public static async Task CreateClassfromJsonSchema(string url)
        {
            JsonSchema4 jsonSchema = await JsonSchema4.FromUrlAsync(url);
            CSharpGenerator generator = new CSharpGenerator(jsonSchema);
            string file = generator.GenerateFile();
        }
    }
}


哪个生成了附加在此链接上的代码:https://file.io/LlRNsf(我不确定它在那里能持续多久)

您需要执行另一个呼叫以获取响应。

关于c# - 从JSON架构为Saber REST API生成C#模型类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50711889/

10-11 22:34