ShipEngine / shipengine-openapi

The official OpenAPI 3.0 definitions for ShipEngine™
https://shipengine.github.io/shipengine-openapi/
22 stars 16 forks source link

OpenAPI Errors with OpenAPI Generator #15

Open gf3 opened 2 years ago

gf3 commented 2 years ago

I'm trying to generate a Go client with openapi-generator from the provided Open API JSON/YAML however the generator fails with 54 errors and 263 warnings. openapi-generator does have an option to skip validation but unfortunately these errors persist with generation.

Using the latest openapi.json in this repository, this is the command I'm using to attempt generating a client in Go:

openapi-generator generate -i shipengine-openapi/openapi.json -g go -o ./client ### Output ``` Exception in thread "main" org.openapitools.codegen.SpecValidationException: There were issues with the specification. The option can be disabled via validateSpec (Maven/Gradle) or --skip-validate-spec (CLI). | Error count: 54, Warning count: 263 Errors: -attribute paths.'/v1/relay_points'(get).parameters.[city_locality].minLength is unexpected -attribute paths.'/v1/shipments/{shipment_id}'(put).responses.200.content.'application/json'.schema.properties is not of type `object` -attribute paths.'/v1/shipments/recognize'(put).requestBody.content.'application/json'.schema.properties is not of type `object` -attribute paths.'/v1/labels/shipment/{shipment_id}'(post).responses.200.content.'application/json'.schema.properties is not of type `object` -attribute components.schemas.shipment.properties is not of type `object` -attribute paths.'/v1/shipments'(post).requestBody.content.'application/json'.schema.properties is not of type `object` -attribute components.schemas.get_shipment_by_id_response_body.properties is not of type `object` -attribute paths.'/v1/labels/{label_id}'(get).responses.200.content.'application/json'.schema.properties is not of type `object` -attribute paths.'/v1/shipments/external_shipment_id/{external_shipment_id}'(get).responses.200.content.'application/json'.schema.properties is not of type `object` -attribute paths.'/v1/rates'(post).requestBody.content.'application/json'.schema.properties is not of type `object` -attribute components.schemas.create_label_response_body.properties is not of type `object` -attribute paths.'/v1/shipments'(get).responses.200.content.'application/json'.schema.properties is not of type `object` -attribute components.schemas.address_validating_shipment.properties is not of type `object` -attribute components.schemas.parse_shipment_response_body.properties is not of type `object` -attribute paths.'/v1/labels/{label_id}/return'(post).responses.200.content.'application/json'.schema.properties is not of type `object` -attribute paths.'/v1/shipments'(post).responses.200.content.'application/json'.schema.properties is not of type `object` -attribute components.schemas.calculate_rates_response_body.properties is not of type `object` -attribute components.schemas.label.properties is not of type `object` -attribute paths.'/v1/labels/rates/{rate_id}'(post).responses.200.content.'application/json'.schema.properties is not of type `object` -attribute paths.'/v1/labels'(post).responses.200.content.'application/json'.schema.properties is not of type `object` -attribute paths.'/v1/labels'(get).responses.200.content.'application/json'.schema.properties is not of type `object` -attribute components.schemas.create_label_request_body.properties is not of type `object` -attribute components.schemas.create_shipments_request_body.properties is not of type `object` -attribute components.schemas.get_label_by_id_response_body.properties is not of type `object` -attribute paths.'/v1/shipments/recognize'(put).responses.200.content.'application/json'.schema.properties is not of type `object` -attribute components.schemas.get_shipment_by_external_id_response_body.properties is not of type `object` -attribute components.schemas.package.properties is not of type `object` -attribute components.schemas.Schema name manifests requests doesn't adhere to regular expression ^[a-zA-Z0-9\.\-_]+$ -attribute paths.'/v1/labels'(post).requestBody.content.'application/json'.schema.properties is not of type `object` -attribute components.schemas.Schema name manifest request doesn't adhere to regular expression ^[a-zA-Z0-9\.\-_]+$ -attribute components.schemas.compare_bulk_rates_request_body.properties is not of type `object` -attribute components.schemas.create_shipments_response_body.properties is not of type `object` -attribute paths.'/v1/relay_points'(get).parameters.[service_code].minLength is unexpected -attribute components.schemas.list_labels_response_body.properties is not of type `object` -attribute paths.'/v1/relay_points'(get).parameters.[postal_code].minLength is unexpected -attribute components.schemas.create_label_from_rate_response_body.properties is not of type `object` -attribute paths.'/v1/relay_points'(get).parameters.[country_code].minLength is unexpected -attribute components.schemas.update_shipment_request_body.properties is not of type `object` -attribute components.schemas.calculate_rates_request_body.properties is not of type `object` -attribute components.schemas.shipment_request.properties is not of type `object` -attribute components.schemas.get_label_by_external_shipment_id_response_body.properties is not of type `object` -attribute paths.'/v1/shipments/{shipment_id}'(get).responses.200.content.'application/json'.schema.properties is not of type `object` -attribute components.schemas.create_and_validate_shipment.properties is not of type `object` -attribute paths.'/v1/rates'(post).responses.200.content.'application/json'.schema.properties is not of type `object` -attribute paths.'/v1/rates/bulk'(post).requestBody.content.'application/json'.schema.properties is not of type `object` -attribute components.schemas.partial_shipment.properties is not of type `object` -attribute components.schemas.rate_request_by_shipments.properties is not of type `object` -attribute paths.'/v1/labels/external_shipment_id/{external_shipment_id}'(get).responses.200.content.'application/json'.schema.properties is not of type `object` -attribute components.schemas.create_label_from_shipment_response_body.properties is not of type `object` -attribute components.schemas.list_shipments_response_body.properties is not of type `object` -attribute components.schemas.parse_shipment_request_body.properties is not of type `object` -attribute paths.'/v1/shipments/{shipment_id}'(put).requestBody.content.'application/json'.schema.properties is not of type `object` -attribute components.schemas.create_return_label_response_body.properties is not of type `object` -attribute components.schemas.update_shipment_response_body.properties is not of type `object` Warnings: -attribute paths.'/v1/relay_points'(get).parameters.[city_locality].minLength is unexpected -attribute paths.'/v1/shipments/{shipment_id}'(put).responses.200.content.'application/json'.schema.properties is not of type `object` -attribute paths.'/v1/shipments/recognize'(put).requestBody.content.'application/json'.schema.properties is not of type `object` -attribute paths.'/v1/labels/shipment/{shipment_id}'(post).responses.200.content.'application/json'.schema.properties is not of type `object` -attribute components.schemas.shipment.properties is not of type `object` -attribute paths.'/v1/shipments'(post).requestBody.content.'application/json'.schema.properties is not of type `object` -attribute components.schemas.get_shipment_by_id_response_body.properties is not of type `object` -attribute paths.'/v1/labels/{label_id}'(get).responses.200.content.'application/json'.schema.properties is not of type `object` -attribute paths.'/v1/shipments/external_shipment_id/{external_shipment_id}'(get).responses.200.content.'application/json'.schema.properties is not of type `object` -attribute paths.'/v1/rates'(post).requestBody.content.'application/json'.schema.properties is not of type `object` -attribute components.schemas.create_label_response_body.properties is not of type `object` -attribute paths.'/v1/shipments'(get).responses.200.content.'application/json'.schema.properties is not of type `object` -attribute components.schemas.address_validating_shipment.properties is not of type `object` -attribute components.schemas.parse_shipment_response_body.properties is not of type `object` -attribute paths.'/v1/labels/{label_id}/return'(post).responses.200.content.'application/json'.schema.properties is not of type `object` -attribute paths.'/v1/shipments'(post).responses.200.content.'application/json'.schema.properties is not of type `object` -attribute components.schemas.calculate_rates_response_body.properties is not of type `object` -attribute components.schemas.label.properties is not of type `object` -attribute paths.'/v1/labels/rates/{rate_id}'(post).responses.200.content.'application/json'.schema.properties is not of type `object` -attribute paths.'/v1/labels'(post).responses.200.content.'application/json'.schema.properties is not of type `object` -attribute paths.'/v1/labels'(get).responses.200.content.'application/json'.schema.properties is not of type `object` -attribute components.schemas.create_label_request_body.properties is not of type `object` -attribute components.schemas.create_shipments_request_body.properties is not of type `object` -attribute components.schemas.get_label_by_id_response_body.properties is not of type `object` -attribute paths.'/v1/shipments/recognize'(put).responses.200.content.'application/json'.schema.properties is not of type `object` -attribute components.schemas.get_shipment_by_external_id_response_body.properties is not of type `object` -attribute components.schemas.package.properties is not of type `object` -attribute components.schemas.Schema name manifests requests doesn't adhere to regular expression ^[a-zA-Z0-9\.\-_]+$ -attribute paths.'/v1/labels'(post).requestBody.content.'application/json'.schema.properties is not of type `object` -attribute components.schemas.Schema name manifest request doesn't adhere to regular expression ^[a-zA-Z0-9\.\-_]+$ -attribute components.schemas.compare_bulk_rates_request_body.properties is not of type `object` -attribute components.schemas.create_shipments_response_body.properties is not of type `object` -attribute paths.'/v1/relay_points'(get).parameters.[service_code].minLength is unexpected -attribute components.schemas.list_labels_response_body.properties is not of type `object` -attribute paths.'/v1/relay_points'(get).parameters.[postal_code].minLength is unexpected -attribute components.schemas.create_label_from_rate_response_body.properties is not of type `object` -attribute paths.'/v1/relay_points'(get).parameters.[country_code].minLength is unexpected -attribute components.schemas.update_shipment_request_body.properties is not of type `object` -attribute components.schemas.calculate_rates_request_body.properties is not of type `object` -attribute components.schemas.shipment_request.properties is not of type `object` -attribute components.schemas.get_label_by_external_shipment_id_response_body.properties is not of type `object` -attribute paths.'/v1/shipments/{shipment_id}'(get).responses.200.content.'application/json'.schema.properties is not of type `object` -attribute components.schemas.create_and_validate_shipment.properties is not of type `object` -attribute paths.'/v1/rates'(post).responses.200.content.'application/json'.schema.properties is not of type `object` -attribute paths.'/v1/rates/bulk'(post).requestBody.content.'application/json'.schema.properties is not of type `object` -attribute components.schemas.partial_shipment.properties is not of type `object` -attribute components.schemas.rate_request_by_shipments.properties is not of type `object` -attribute paths.'/v1/labels/external_shipment_id/{external_shipment_id}'(get).responses.200.content.'application/json'.schema.properties is not of type `object` -attribute components.schemas.create_label_from_shipment_response_body.properties is not of type `object` -attribute components.schemas.list_shipments_response_body.properties is not of type `object` -attribute components.schemas.parse_shipment_request_body.properties is not of type `object` -attribute paths.'/v1/shipments/{shipment_id}'(put).requestBody.content.'application/json'.schema.properties is not of type `object` -attribute components.schemas.create_return_label_response_body.properties is not of type `object` -attribute components.schemas.update_shipment_response_body.properties is not of type `object` at org.openapitools.codegen.config.CodegenConfigurator.toContext(CodegenConfigurator.java:556) at org.openapitools.codegen.config.CodegenConfigurator.toClientOptInput(CodegenConfigurator.java:583) at org.openapitools.codegen.cmd.Generate.execute(Generate.java:433) at org.openapitools.codegen.cmd.OpenApiGeneratorCommand.run(OpenApiGeneratorCommand.java:32) at org.openapitools.codegen.OpenAPIGenerator.main(OpenAPIGenerator.java:66) ```