Issues with Swagger client generation for Java

I have noticed two problems with the generated Java client code. At the moment, these require manual changes by me in order to use the client API code.

  1. The user ‘pmi’ field is typed as a Java Integer in the InlineResponse20033 model class, but the field is required to have 10-digits. This means that any pmi which represents a number greater than 2147483647 (0x7FFFFFFF) will overflow the Java Integer type, and de-serialization (for example, Jackson libraries) will throw an exception.

  2. The account ‘id’ field is typed as a java.util.UUID in the AccountListAccounts model class, and the UUID type has a specific 36-character format (including 4 dashes). The ids of the test accounts that we have created do not follow this format (they are 22-character strings), and so de-serialization (for example, Jackson libraries) will throw an exception. I am assuming these id’s are generated by the Zoom system.

Thanks
Lloyd

Hey @lweber.bt_dev, thanks for posting and using Zoom!

We are working on fixing the generation of the Java Client Code. I will post back here once it is fixed.

Duplicate Post:

Apologies for the inconvenience.

Thanks,
Tommy

Hey @lweber.bt_dev,

Can you try again? We have updated the Client Code.

Let me know if it works for you! :slight_smile:

Thanks,
Tommy

Thanks Tommy,

I have noticed the account ‘id’ field is now a String and so no more error there. However, the user ‘pmi’ field still errors with numbers greater than 2147483647 (as described before). Also, the lower-case ‘object’ type is still present and must be manually fixed.

Thanks for the update.
Lloyd

Also, I notice that the generated MeetingsApi.java class returns a GroupList object from the meetings() method - this must be the wrong return type because it does not contain any meeting info.

Hey @lweber.bt_dev,

Thanks for the details! I will pass this on our team and have them fix it! :slight_smile:

JIRA: DEVELOPERS-404

-Tommy

Hey @lweber.bt_dev,

We have updated the Java Client Library:

And the updated Open API JSON:

Let me know if this works for you all! :slight_smile:

Thanks,
Tommy

Hey everyone,

Recently we launched Zoom Rivet for Node.js. Zoom Rivet is Zoom’s Official API Library and API Wrapper.

We currently support Node.js. Java, Python, GO, C#, and other languages are coming soon or being considered.

Zoom Rivet is available on npm and can be used to automatically handle OAuth and easily call Zoom APIs like Meetings, Phone, Users, Team Chat, Chatbot, Accounts, Video SDK, and more. It even includes a Webhook server to easily receive Zoom Webhooks.

npm install @zoom/rivet

Example that handles OAuth and calls a Meeting API and listens to a webhook event:

import { MeetingsS2SAuthClient } from "@zoom/rivet/meetings";

(async () => {
   const meetingsClient = new MeetingsS2SAuthClient({
      clientId: process.env.CLIENT_ID,
      clientSecret: process.env.CLIENT_SECRET,
      webhooksSecretToken: process.env.WEBHOOKS_SECRET_TOKEN,
      accountId: process.env.ACCOUNT_ID
   });

   // Rivet Events and Endpoints Go Here

   meetingsClient.endpoints.meetings.getMeeting({
      path: { meetingId: "MEETINGID" }
   }).then((response) => {
      console.log(response)
   });

   meetingsClient.webEventConsumer.event("meeting.started", (response) => {
      console.log(response.payload);
   })

   const server = await meetingsClient.start();

   console.log(`Zoom Rivet Events Server running on: ${JSON.stringify(server.address())}`);
})();

NPM:

Docs:

Sample App:

For feedback, requests, or questions please refer to the Rivet Devforum Category:

Best,
Tommy