yandex-market / yandex-market-partner-api

API Яндекс Маркета для продавцов
https://yandex.ru/dev/market/partner-api/doc/ru/
BSD 3-Clause "New" or "Revised" License
17 stars 6 forks source link

desctiption & $ref вместе ломают кодогенерацию #7

Open borgez opened 3 months ago

borgez commented 3 months ago

по спеке или реф или description но не вместе, из-за этого ломается генерация в nswag

vbauer commented 3 months ago

@borgez Доброго времени суток, правильно понимаю что речь про https://github.com/RicoSuter/NSwag ? Он не является официальным генератором, входящим в поставку https://github.com/openAPITools/openapi-generator/ ? Можете пожалуйста предоставить больше информации о проблеме?

Можете уточнить на какой пункт спецификации вы ссылаетесь про недопустимость $ref и description? По https://github.com/OAI/OpenAPI-Specification/blob/main/schemas/v3.0/schema.json#L507 не вижу таких ограничений

Наши тесты показывают, что на генераторе csharp (https://openapi-generator.tech/docs/generators/csharp/) спецификация собирается корректно (как и нам многих других из официальной поставки openapi-generator-cli)

borgez commented 3 months ago

Доброе, подготовил пример

Тут можно посмотреть воспроизведение бага

Пример в спеках

Ссылаюсь на эту часть спеки, тут oneOf для properties, также по вашей ссылке если посмотреть $ref не является допустимым свойством в объекте

PS D:\work\2024\yandex-market-partner-api-bug-7> dotnet build Determining projects to restore... Restored D:\work\2024\yandex-market-partner-api-bug-7\Yandex.Market.Api.csproj (in 735 ms). CSC : error REFITTER000: Refitter failed to generate code: System.InvalidCastException: Unable to cast object of type ' NJsonSchema.JsonSchema' to type 'NSwag.OpenApiPathItem'. [D:\work\2024\yandex-market-partner-api-bug-7\Yandex.Market.Ap i.csproj]

Build FAILED.

CSC : error REFITTER000: Refitter failed to generate code: System.InvalidCastException: Unable to cast object of type ' NJsonSchema.JsonSchema' to type 'NSwag.OpenApiPathItem'. [D:\work\2024\yandex-market-partner-api-bug-7\Yandex.Market.Ap i.csproj] 0 Warning(s) 1 Error(s)

Time Elapsed 00:00:05.51

vbauer commented 3 months ago

@borgez Спасибо за детальную информацию, проблема стала понятнее:

Мы возьмем задачу на подумать, но точных сроков пока что дать не могу. В данный момент возможны несколько вариантов решения: