从JSON Schema为Sabre REST API生成C#模型类

时间:2018-06-06 03:34:43

标签: c# rest sabre

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

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

到目前为止我们遵循的步骤:

  1. OTA_AirLowFareSearchRQ.jsonschemaOTA_AirLowFareSearchRS.jsonschema个文件下载到文件夹中。
  2. 使用PowerShell导航到该文件夹​​并调用quicktype -s schema OTA_AirLowFareSearchRQ.jsonschema OTA_AirLowFareSearchRS.jsonschema -o SabreAirLowFareSearch.cs
  3. 不幸的是它失败并显示消息“错误:尝试建立一个空联合 - 你的架构中有一个不可能的类型吗?”。这似乎与OTA_AirLowFareSearchRQ.jsonschema隔离。

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

1 个答案:

答案 0 :(得分:2)

我已导入NuGet包:

  • NJsonSchema
  • 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 (我不知道它会持续多久)

您需要为响应执行另一个调用。