Issues with Swagger

Description/Error

Errors
Hide
 
Semantic error at paths./im/users/{userId}/channels
Declared path parameter "userId" needs to be defined as a path parameter at either the path or operation level
Jump to line 22664
Structural error at paths./rooms/account_settings.get.responses.200.schema
should NOT have additional properties
additionalProperty: oneOf
Jump to line 27280
Structural error at paths./rooms/account_settings.patch.parameters.0.schema
should NOT have additional properties
additionalProperty: oneOf
Jump to line 27513
Structural error at paths./rooms/locations/{locationId}/settings.get.responses.200.schema
should NOT have additional properties
additionalProperty: oneOf
Jump to line 28096
Structural error at paths./rooms/locations/{locationId}/settings.patch.parameters.0.schema
should NOT have additional properties
additionalProperty: oneOf
Jump to line 28362
Structural error at paths./rooms/{roomId}/settings.get.responses.200.schema
should NOT have additional properties
additionalProperty: oneOf
Jump to line 28879
Structural error at paths./rooms/{roomId}/settings.patch.parameters.1.schema
should NOT have additional properties
additionalProperty: oneOf
Jump to line 29129

Which Endpoint/s?
current swagger file
2019/11/11 https://marketplace.zoom.us/docs/api-reference/zoom-api/Zoom%20API.oas2.json

How To Reproduce (If applicable)

  1. goto https://editor.swagger.io/
  2. paste json body
  3. See error

Screenshot in attachment

Here mixed up the syntax from Swagger 2.0 with Openapi 3.0.0

In the online editor you can click on the button Edit > Convert to OpenAPI 3 to use Openapi 3.0.1

unfortunately some errors will stay

Errors

Semantic error at paths./phone/users/{userId}/status
Declared path parameter "userId" needs to be defined as a path parameter at either the path or operation level
Jump to line 381
Semantic error at paths./im/users/{userId}/channels
Declared path parameter "userId" needs to be defined as a path parameter at either the path or operation level
Jump to line 33021
Semantic error at paths./phone/users/{userId}/online_calls
Declared path parameter "userId" needs to be defined as a path parameter at either the path or operation level
Jump to line 35468
Semantic error at paths./metrics/client/satisfaction.get.requestBody
GET operations cannot have a requestBody.
Jump to line 42909

Hey @a.koval,

Thanks for letting us know. As a work around, we have (beta) client libraries and updated swagger files here:

https://drive.google.com/drive/folders/1JfxC7Ybla3wc0xTpPAXMvO_g5n6m_TZM

Feel free to test them out!

Thanks,
Tommy

Hey @a.koval,

We fixed the issues, but you still have to use the online editor and convert to Open API3.

Thanks,
Tommy

Hello, Tommy!

(beta) client libraries

  • is concept, not useful code.
    Inside your google disk folder I’m not found “…updated swagger files”

Hey @a.koval, apologies you did not find the Client Libraries useful.

We fixed the issues in the swagger file, but you still have to use the online editor and convert to Open API3.

Thanks,
Tommy

  • GET /accounts/{accountId}/settings lost “schema” item (example item - Ok)
  • GET /webinars/{webinarId}
    example have invalid field value “id” - int
  "id": ***********,
  "join_url": "https://zoom.us/j/00000011110",

*This post has been edited to remove any meeting / webinar IDs

Hey @a.koval,

Thanks for pointing this out, we will fix it.

As for the invalid value for webinar id, what do you mean it is invalid?

-Tommy

“application/json”
RFC4627 … int = zero / ( digit1-9 *DIGIT )
The representation of numbers - integer has value 00000011110
which contains leading zeroes (and it’s not the string)
Any Json-validator produce error.

Hey @a.koval,

Thanks for the clarification, we will get this fixed!

-Tommy

Hey @a.koval,

The swagger issues should be fixed!

Thanks,
Tommy

Did you changed the API that not to accept RequestBody as input of any swagger API changes ?

I saw you have used the beta client libraries, could you please share those.

I don’t any use beta clients. I am using golang code generation based on swagger contract. Unfortunately, I can’t share my code (employer obliged me). But I can expand the list of tools used:
github.com/antchfx/jsonquery
github.com/tidwall/gjson
github.com/gedex/inflector
github.com/idubinskiy/schematyper/stringset
github.com/go-openapi/inflect

Hey @praveenkh48,

I am unaware of any such changes.

The beta client libraries are now 6 months outdated. We are working on the Swagger spec to work out of the box soon.

Thanks,
Tommy

Thanks for sharing these @a.koval! :slight_smile:

-Tommy

I am seeing the following problem when attempting to use the Zoom API version 2.0.0 in Swagger Editor:

== STEPS TO REPRODUCE ==

  1. Downlocad the Zoom API specification from https://marketplace.zoom.us/docs/api-reference/zoom-api/Zoom%20API.oas2.json.
  2. Open the online Swagger Editor at https://editor.swagger.io/.
  3. Clear the default text from the editor using File-> Clear Editor.
  4. Load the Zoom API specification by using File-> Import file. Browse to the file you downloaded, then press Open.
  5. The file loads in the editor. After a moment, a number of errors will be seen in the right pane. Ignore these for the moment.
  6. Select Edit-> Convert to OpenAPI 3, then press Convert. When the conversion has finished, press Close.
  7. Wait a few moments while the editor parses the file and checks for any errors.

== ACTUAL RESULT ==
The following errors are displayed:

Semantic error at paths./im/chat/messages/{message_id}.delete.requestBody
DELETE operations cannot have a requestBody.
Jump to line 32995

Semantic error at paths./meetings/{meetingId}/batch_registrants
Declared path parameter "meetingId" needs to be defined as a path parameter at either the path or operation level
Jump to line 47023

Semantic error at components.securitySchemes.Client Credentials
Component names can only contain the characters A-Z a-z 0-9 - . _
Jump to line 59386

== EXPECTED RESULT ==
No errors occur.

Hey @sendres,

We are working on fixing this. CC @shrijana.g. :slight_smile:

Thanks,
Tommy

Hi @sendres The JSON spec for some of our APIs do not match the Open API standard. We will be fixing this issue in the future but do not have a timeline yet.

Thank you,
Shrijana

1 Like

Thank you @shrijana.g. The university where I work is driving toward increased automation and interoperation of our core learning technologies, including Zoom. With a well-formed OpenAPI specification, our developers can generate clients in whatever language they prefer and our systems people can use Microsoft Power Automate to generate a custom connector for Zoom.

To be blunt, the biggest roadblock we have found is vendors whose specs don’t comply with OpenAPI standards. I’m working to generate Python and Power Automate clients for five platforms right now. In each case, I was able to download the vendor’s JSON spec only to find it fails compliance with the standard.

I strongly encourage Zoom to make OpenAPI compliance testing part of their API release process. As we can see from earlier posts in the thread, previous releases have had similar issues. I appreciate your work to fix this but am at the same time annoyed that we as customers are having to deal with these problems.

2 Likes

Hey @sendres,

Thank you for your feedback. Fixing our Open API spec is one of our priorities.

Thanks,
Tommy

1 Like