12-22-2021 07:48 AM
Good Morning,
I am attempting to to publish a simple test API that is built from a triggered task. When I go to publish version 1.0 in API Manager I get the following message, “Invalid Content. Upload a valid Swagger specification.”. There is a built-in specification editor that I am using just to the left of the “Choose File” button in the Publish Version pop up window and it does not show any errors in the swagger specification I am uploading.
At this point, I am at a loss as to what might be wrong/missing in the specification file to generate that message. Any guidance on this issue would be greatly appreciated.
Thanks,
James
12-22-2021 07:54 AM
Is it a valid Swagger 2.0 Specification? Currently, we support 2.0 specifications to be published and not 3.0. However, the editor will parse a swagger 3.0 with no errors.
If that doesn’t fix the issue, can you share your swagger specification here?
12-22-2021 08:43 AM
It should be Swagger 2.0. Here is the specification file. I have changed “basePath” to share on community
james_pipeline_to_api_spec.txt (3.5 KB)
12-22-2021 09:19 AM
Okay, I have identified the issue with the specification provided.
Let me explain in a few steps:
one the validate call to validate your specification shows the error:
From there you can see the type of your parameter putId
is a string however it has a items
field describing it as an array, and the default is not a string. So, this is mixing the type of a string with the definition of an array type.
I modified your specification only to change the type of the mentioned parameter to an array instead of a string.
If you would like it to be a string then the definition should not include the items
description.
here is the modified spec that is now validating successfully for me after changing the type:
paramsTypeToArray.txt (3.5 KB)
12-22-2021 08:16 AM
Hi @jsmith141 ,
Do you have, by any chance, in the schemes an empty array element ?
If so, edit your file in the editor provided by SL and remove that line under schemes. For some reason, this happens when you generate a .yaml file for the project that you are creating the API and that exact error is triggered when trying to publish the API.