В настоящее время мне поручено реализовать инструмент, который взаимодействует с REST-API Magento 2
Magento2 предоставляет схему Swagger 2.0 JSON , которая позволила мне (после исправления многочисленных проблем в схеме) для генерации правильного клиента с помощью NSwag.
Проблема теперь заключается в следующем: REST API Magento 2 в некоторых моментах не соответствует своей спецификации.
Я уже решил некоторые проблемы, исправив сгенерированный код вручную.Однако я постоянно сталкиваюсь с новыми проблемами из-за того, что спецификация не соответствует действительности в отношении типа.
Например, схема указывает:
"framework-attribute-interface": {
"type": "object",
"description": "Interface for custom attribute value.",
"properties": {
"attribute_code": {
"type": "string",
"description": "Attribute code"
},
"value": {
"type": "string",
"description": "Attribute value"
}
},
"required": ["attribute_code", "value"]
}
однако реальный API может возвращатьstring
или array
, как показано в этом примере фрагмента ответа:
{
"attribute_code": "category_ids",
"value": ["6", "8", "16"]
}, {
"attribute_code": "required_options",
"value": "0"
}
Хотя я мог бы потратить несколько дней, чтобы протестировать весь API и все исправить, я хочу избежать этого по очевидным причинам (время).Таким образом, вопрос теперь более или менее существует, есть какой-то простой, ленивый способ «автоматически конвертировать» все (хотите избежать dynamic
btw.)?
Используемая среда JSON - Newtonsoft.Json
.Связь работает через .NET Framework
System.Net.Http.HttpClient