Генерация классов модели C# из JSON Schema для Sabre REST API
В нашем приложении C# ASP.NET MVC мы реализуем API-интерфейс Sabre REST для доступа к контенту воздуха, отелей и транспортных средств.
До сих пор мы сталкивались с некоторыми проблемами при создании классов модели C# из документов схемы JSON, предоставленных Sabre Dev Studio. Мы используем 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
,
Есть ли инструмент или лучшие практики для успешного создания классов модели C# из документов схемы JSON?
1 ответ
Я импортировал пакеты 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 (я не уверен, как долго он там продлится)
Вам нужно выполнить еще один вызов для ответа.