我们正在实施Sabre REST API,以在我们的C#ASP.NET MVC应用程序中访问飞机,酒店和车辆的内容。
到目前为止,从Saber Dev Studio提供的JSON Schema文档生成C#模型类时,我们遇到了一些问题。我们正在使用Quicktype CLI(https://quicktype.io/)生成模型类。
到目前为止,我们已执行的步骤:
将OTA_AirLowFareSearchRQ.jsonschema
和OTA_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/