allegro / allegro-api

Issue tracker and wiki for Allegro REST API
https://developer.allegro.pl/
210 stars 39 forks source link

Błąd przy generowanie biblioteki za pomocą openapi-generator php-nextgen #8934

Open robsonek opened 2 months ago

robsonek commented 2 months ago

Występuje problem:

:beetle: Opis / Description

Próbuje wygenerować bibliotekę do obsługi Allegro API za pomocą openapi-generator v 7.5.0 (https://openapi-generator.tech) używając do tego generatora php-nextgen (https://openapi-generator.tech/docs/generators/php-nextgen/).

Komenda: openapi-generator generate -i https://developer.allegro.pl/swagger.yaml -g php-nextgen -o AllegroAPI

Podczas generowanie otrzymuje poniższy błąd:

Exception in thread "main" java.lang.RuntimeException: Could not process model 'SaleProductOfferRequestV1'.Please make sure that your schema is correct! at org.openapitools.codegen.DefaultGenerator.generateModels(DefaultGenerator.java:542) at org.openapitools.codegen.DefaultGenerator.generate(DefaultGenerator.java:1228) at org.openapitools.codegen.cmd.Generate.execute(Generate.java:535) at org.openapitools.codegen.cmd.OpenApiGeneratorCommand.run(OpenApiGeneratorCommand.java:32) at org.openapitools.codegen.OpenAPIGenerator.main(OpenAPIGenerator.java:66) Caused by: java.lang.NullPointerException at org.openapitools.codegen.languages.PhpNextgenClientCodegen.toDefaultValue(PhpNextgenClientCodegen.java:204) at org.openapitools.codegen.DefaultCodegen.fromProperty(DefaultCodegen.java:4262) at org.openapitools.codegen.DefaultCodegen.fromProperty(DefaultCodegen.java:3937) at org.openapitools.codegen.DefaultCodegen.addVars(DefaultCodegen.java:6041) at org.openapitools.codegen.DefaultCodegen.addVarsRequiredVarsAdditionalProps(DefaultCodegen.java:7971) at org.openapitools.codegen.DefaultCodegen.updatePropertyForObject(DefaultCodegen.java:3851) at org.openapitools.codegen.DefaultCodegen.fromProperty(DefaultCodegen.java:4187) at org.openapitools.codegen.DefaultCodegen.fromProperty(DefaultCodegen.java:3937) at org.openapitools.codegen.DefaultCodegen.getComposedProperties(DefaultCodegen.java:8434) at org.openapitools.codegen.DefaultCodegen.getComposedSchemas(DefaultCodegen.java:8414) at org.openapitools.codegen.DefaultCodegen.fromModel(DefaultCodegen.java:3180) at org.openapitools.codegen.DefaultGenerator.processModels(DefaultGenerator.java:1683) at org.openapitools.codegen.DefaultGenerator.generateModels(DefaultGenerator.java:537) ... 4 more

Generowanie biblioteki w domyślnym generatorze php (https://openapi-generator.tech/docs/generators/php/) przebiega pomyślnie. Nie wiem czy to bug allegro czy biblioteki, ponieważ to jeszcze wersja beta, ale zgłaszam najpierw tutaj.

Lukasz-Zurek commented 2 months ago

@robsonek Konsultuję to jeszcze z odpowiednim zespołem. Proszę o cierpliwość.

Lukasz-Zurek commented 2 months ago

@robsonek Czy mógłbyś przesłać cały stacktrace? Sprawdziliśmy wstępnie i nie odnotowaliśmy błędu po naszej stronie, jednak aby to dokładnie zweryfikować, potrzebowalibyśmy więcej szczegółów.

robsonek commented 2 months ago

Czy na pewno generujecie przy pomocy php-nextgen?

W pliku wgrałem cały output z tej komendy. Pakiet openapi-generator mam zainstalowany przez brew na MacOS file.txt

robsonek commented 2 months ago

Uruchamiam przez dockera i jest to samo

docker run --rm -v ${PWD}:/local openapitools/openapi-generator-cli generate -i https://developer.allegro.pl/swagger.yaml -g php-nextgen -o /local/sdk

Exception in thread "main" java.lang.RuntimeException: Could not process model 'SaleProductOfferRequestV1'.Please make sure that your schema is correct! at org.openapitools.codegen.DefaultGenerator.generateModels(DefaultGenerator.java:542) at org.openapitools.codegen.DefaultGenerator.generate(DefaultGenerator.java:1228) at org.openapitools.codegen.cmd.Generate.execute(Generate.java:535) at org.openapitools.codegen.cmd.OpenApiGeneratorCommand.run(OpenApiGeneratorCommand.java:32) at org.openapitools.codegen.OpenAPIGenerator.main(OpenAPIGenerator.java:66) Caused by: java.lang.NullPointerException: Cannot invoke "io.swagger.v3.oas.models.media.Schema.getDefault()" because the return value of "io.swagger.v3.oas.models.media.Schema.getItems()" is null at org.openapitools.codegen.languages.PhpNextgenClientCodegen.toDefaultValue(PhpNextgenClientCodegen.java:204) at org.openapitools.codegen.DefaultCodegen.fromProperty(DefaultCodegen.java:4263) at org.openapitools.codegen.DefaultCodegen.fromProperty(DefaultCodegen.java:3938) at org.openapitools.codegen.DefaultCodegen.addVars(DefaultCodegen.java:6042) at org.openapitools.codegen.DefaultCodegen.addVarsRequiredVarsAdditionalProps(DefaultCodegen.java:7972) at org.openapitools.codegen.DefaultCodegen.updatePropertyForObject(DefaultCodegen.java:3852) at org.openapitools.codegen.DefaultCodegen.fromProperty(DefaultCodegen.java:4188) at org.openapitools.codegen.DefaultCodegen.fromProperty(DefaultCodegen.java:3938) at org.openapitools.codegen.DefaultCodegen.getComposedProperties(DefaultCodegen.java:8435) at org.openapitools.codegen.DefaultCodegen.getComposedSchemas(DefaultCodegen.java:8415) at org.openapitools.codegen.DefaultCodegen.fromModel(DefaultCodegen.java:3181) at org.openapitools.codegen.DefaultGenerator.processModels(DefaultGenerator.java:1683) at org.openapitools.codegen.DefaultGenerator.generateModels(DefaultGenerator.java:537) ... 4 more

Lukasz-Zurek commented 2 months ago

Czy na pewno generujecie przy pomocy php-nextgen?

Tak.

W pliku wgrałem cały output z tej komendy. Pakiet openapi-generator mam zainstalowany przez brew na MacOS file.txt

Dziękuję. Weryfikujemy to.

Lukasz-Zurek commented 2 months ago

@robsonek Problem może leżeć po wersji beta generatora php-nextgen, tzn. błąd przy next-gen mówi:

Exception in thread "main" java.lang.RuntimeException: Could not process model 'SaleProductOfferRequestV1'.Please make sure that your schema is correct!
...
Caused by: java.lang.NullPointerException: Cannot invoke "io.swagger.v3.oas.models.media.Schema.getDefault()" because the return value of "io.swagger.v3.oas.models.media.Schema.getItems()" is null 

czyli przy typie ‘array’ powinien być klucz items, który tam występuje. I tu trudno jednoznacznie wskazać gdzie leży błąd, być może wersja beta nie obsługuje typów allOf, lub przyczyna leży gdzie indziej.

Niemniej jednak generując samo php, czyli -g php - powinno udać się Tobie to wygenerować bibliotekę. To też właśnie Tobie zalecam :)

robsonek commented 2 months ago

OK, zgłosiłem błąd na ich githubie :)

Używam gerenatora -g php, ale z ciekawości chciałem zobaczyć czym różni się ta nowa wersja :)

stale[bot] commented 2 months ago

W tym wątku nie pojawiła się żadna nowa odpowiedź w ciągu 7 dni, dlatego automatycznie oznaczamy go jako przeterminowany. Jeśli w ciągu kolejnych 7 dni nie pojawi się żadna odpowiedź, wątek zostanie zamknięty. Dziękujemy za zaangażowanie w dyskusję i zachęcamy Cię do wypełnienia ankiety dotyczącej naszego wsparcia na forum.


There was no new reply in this thread within 7 days, therefore, we automatically marked it as expired. If no response is received within the next 7 days, this thread will be closed. Thank you for engaging in the discussion. We encourage you to complete our forum support survey.