This is an automated email from the ASF dual-hosted git repository. sebawagner pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/openmeetings-site.git
The following commit(s) were added to refs/heads/master by this push: new 71b2b1e OPENMEETINGS-2661 Add Rest examples and add Node.js Module. And update swagger description. 71b2b1e is described below commit 71b2b1e8b09f2a651af650963f7160545df1427e Author: Sebastian Wagner <sebawag...@apache.org> AuthorDate: Sun Sep 12 11:22:56 2021 +1200 OPENMEETINGS-2661 Add Rest examples and add Node.js Module. And update swagger description. --- ConfluencePlugin.html | 6 +- JiraPlugin.html | 6 +- RestAPISample.html | 69 ++++++++++++++++++++-- ...apache-openmeetings-7.0.0-SNAPSHOT-swagger.json | 5 +- 4 files changed, 73 insertions(+), 13 deletions(-) diff --git a/ConfluencePlugin.html b/ConfluencePlugin.html index 9e721e1..d603b94 100644 --- a/ConfluencePlugin.html +++ b/ConfluencePlugin.html @@ -3,7 +3,7 @@ <!doctype html> <!-- - Generated by Apache Maven Doxia at 2021-09-01 Rendered using Reflow Maven Skin 2.3.0 (http://devacfr.github.io/reflow-maven-skin) + Generated by Apache Maven Doxia at 2021-09-12 Rendered using Reflow Maven Skin 2.3.0 (http://devacfr.github.io/reflow-maven-skin) --> <html xml:lang="en" lang="en"> <head> @@ -215,7 +215,7 @@ <main class="col-xs-12 col-sm-12 col-md-12 col-lg-12 col-xl-8" role="main"> <nav aria-label="breadcrumb"> <ol class="breadcrumb"> - <li class="publishDate version-date"> Last Published: 2021-09-01</li> + <li class="publishDate version-date"> Last Published: 2021-09-12</li> </ol> </nav> <section> @@ -240,7 +240,7 @@ <section> <h2 id="demo-video">Demo video</h2> <p>The demo video of Confluence plugin show you the plugin in action </p> - <iframe width="640" height="390" src="https://www.youtube.com/embed/YFKlXggtld0" frameborder="0" allowfullscreen></iframe> + <iframe width="640" height="390" src="https://www.youtube.com/embed/D1XOxgpfr5c" frameborder="0" allowfullscreen></iframe> </section> </main> <div class="d-none d-sm-none d-md-none d-lg-none d-xl-block col-xl-2"> <div id="m-toc-sidebar" class="d-print-none m-toc-sidebar-enabled m-toc-sidebar-expanded m-toc-sidebar-autoexpandable toc-sidebar-fixed"> diff --git a/JiraPlugin.html b/JiraPlugin.html index d144508..2aa3d47 100644 --- a/JiraPlugin.html +++ b/JiraPlugin.html @@ -3,7 +3,7 @@ <!doctype html> <!-- - Generated by Apache Maven Doxia at 2021-09-01 Rendered using Reflow Maven Skin 2.3.0 (http://devacfr.github.io/reflow-maven-skin) + Generated by Apache Maven Doxia at 2021-09-12 Rendered using Reflow Maven Skin 2.3.0 (http://devacfr.github.io/reflow-maven-skin) --> <html xml:lang="en" lang="en"> <head> @@ -215,7 +215,7 @@ <main class="col-xs-12 col-sm-12 col-md-12 col-lg-12 col-xl-8" role="main"> <nav aria-label="breadcrumb"> <ol class="breadcrumb"> - <li class="publishDate version-date"> Last Published: 2021-09-01</li> + <li class="publishDate version-date"> Last Published: 2021-09-12</li> </ol> </nav> <section> @@ -240,7 +240,7 @@ <section> <h2 id="demo-video">Demo video</h2> <p>The demo video of Jira plugin show you the plugin in action </p> - <iframe width="640" height="390" src="https://www.youtube.com/embed/xBdYj-OZvlc" frameborder="0" allowfullscreen></iframe> + <iframe width="640" height="390" src="https://www.youtube.com/embed/gbp4_Lpfrno" frameborder="0" allowfullscreen></iframe> </section> </main> <div class="d-none d-sm-none d-md-none d-lg-none d-xl-block col-xl-2"> <div id="m-toc-sidebar" class="d-print-none m-toc-sidebar-enabled m-toc-sidebar-expanded m-toc-sidebar-autoexpandable toc-sidebar-fixed"> diff --git a/RestAPISample.html b/RestAPISample.html index 66be039..3f472e8 100644 --- a/RestAPISample.html +++ b/RestAPISample.html @@ -3,7 +3,7 @@ <!doctype html> <!-- - Generated by Apache Maven Doxia at 2021-09-01 Rendered using Reflow Maven Skin 2.3.0 (http://devacfr.github.io/reflow-maven-skin) + Generated by Apache Maven Doxia at 2021-09-12 Rendered using Reflow Maven Skin 2.3.0 (http://devacfr.github.io/reflow-maven-skin) --> <html xml:lang="en" lang="en"> <head> @@ -215,7 +215,7 @@ <main class="col-xs-12 col-sm-12 col-md-12 col-lg-12 col-xl-8" role="main"> <nav aria-label="breadcrumb"> <ol class="breadcrumb"> - <li class="publishDate version-date"> Last Published: 2021-09-01</li> + <li class="publishDate version-date"> Last Published: 2021-09-12</li> </ol> </nav> <section> @@ -223,8 +223,12 @@ <h2 id="introduction1">Introduction</h2> </div> <p> For a detailed instruction which services, methods and params are available see the list in the <a href="/openmeetings-webservice/apidocs/index.html" target="_blank">SOAP/REST API</a> . ALL methods that are implemented for the SOAP API are also available via REST. </p> + <div class="bd-callout bd-callout-info"> + There is a + <a class="externalLink" href="https://openmeetings.apache.org/swagger/" target="_blank">OpenAPI spec</a> published in swagger format. + </div> <div> - you can query methods of each service using following suffixes + You can query methods of each service using following suffixes <ul> <li>SOAP: <code>?wsdl</code> suffix, for example <code>https://localhost:5443/openmeetings/services/UserService?wsdl</code></li> <li>REST: as xml <code>?_wadl</code> for example <code>https://localhost:5443/openmeetings/services/user?_wadl</code></li> @@ -237,7 +241,59 @@ </div> </section> <section> - <h2 id="how-to-get-room-hash-via-rest">How to get room hash via REST</h2> + <h2 id="how-to-integrate-using-nodejs">How to integrate using Node.js</h2> + <p>You can integrate OpenMeetings via the Rest API into your Node project.</p> + <div class="bd-callout bd-callout-info"> + There is a community sponsored free module for integrating with Node.JS see: + <a class="externalLink" href="https://www.npmjs.com/package/openmeetings-node-client" target="_blank">openmeetings-node-client</a> + </div> + <p>Install the module</p> + <div class="source"> + <pre>npm install openmeetings-node-client +</pre> + </div> + <p>Eg generate a unique hash to enter a conference room:</p> + <ol style="list-style-type: decimal"> + <li>Login to service</li> + <li>Generate Hash for entering a conference room</li> + <li>Construct Login URL</li> + </ol> + <div class="source"> + <pre>const {UserServiceApi, Configuration} = require("openmeetings-node-client"); +const BASE_URL = "http://localhost:5080/openmeetings" + +const config = new Configuration({ + basePath: BASE_URL + "/services" +}) +// 1. Login to service +const loginResult = await userService.login("admin", "!HansHans") + +// 2. Generate Hash for entering a conference room +const hashResult = await userService.getRoomHash(sessionId, { + firstname: "John", + lastname: "Doe", + externalId: "uniqueId1", + externalType: "myCMS", + login: "john.doe", + email: "john....@gmail.com" + }, { + roomId: 1, + moderator: true + }) + +// 3. Construct Login URL +const loginUrl = `${BASE_URL}/hash?secure=${hashResult.message}` +</pre> + </div> + <p>Full sample source code for can be found at: </p> + <ol style="list-style-type: decimal"> + <li>JavaScript/ES6 example using simplistic Express website see <a class="externalLink" href="https://github.com/om-hosting/openmeetings-node-js-sample-project" target="_BLANK">Github openmeetings-node-js-sample-project</a></li> + <li>TypeScript example using simplistic Express website <a class="externalLink" href="https://github.com/om-hosting/openmeetings-node-sample-project" target="_BLANK">Github openmeetings-node-sample-project</a></li> + </ol> + <p>More in depth examples and use cases can be found at the module page <a class="externalLink" href="https://www.npmjs.com/package/openmeetings-node-client" target="_blank">https://www.npmjs.com/package/openmeetings-node-client</a></p> +</section> +<section> + <h2 id="how-to-get-room-hash-via-rest-vis-jquery">How to get room hash via REST vis jQuery</h2> <ul> <li> First of all you need to perform login and get authorized SID to perform authorized operations <table border="0" class="bodyTable table table-striped table-hover"> @@ -340,7 +396,10 @@ <a class="nav-link" href="#introduction1" title="Introduction">Introduction</a> </li> <li class="h2"> - <a class="nav-link" href="#how-to-get-room-hash-via-rest" title="How to get room hash via REST">How to get room hash via REST</a> + <a class="nav-link" href="#how-to-integrate-using-nodejs" title="How to integrate using Node.js">How to integrate using Node.js</a> + </li> + <li class="h2"> + <a class="nav-link" href="#how-to-get-room-hash-via-rest-vis-jquery" title="How to get room hash via REST vis jQuery">How to get room hash via REST vis jQuery</a> </li> </ul> </nav> diff --git a/swagger/apache-openmeetings-7.0.0-SNAPSHOT-swagger.json b/swagger/apache-openmeetings-7.0.0-SNAPSHOT-swagger.json index 9aaa99c..7ea9275 100644 --- a/swagger/apache-openmeetings-7.0.0-SNAPSHOT-swagger.json +++ b/swagger/apache-openmeetings-7.0.0-SNAPSHOT-swagger.json @@ -2,9 +2,10 @@ "openapi" : "3.0.1", "info" : { "title" : "Apache OpenMeetings API", + "description" : "Integration API enables to connect to an OpenMeetings instance, eg for generating users, create links to directly access conference rooms.<br/><br/>\n\t\t\t\t\t\t\t\t<b>It is mainly designed for Server2Server integration, for example to integrate into your website, CMS or 3rd party application</b><br/><br/>\n\t\t\t\t\t\t\t\tFor examples how to use the Rest API see <a href=\"https://openmeetings.apache.org/RestAPISample.html\" target=\"_BLANK\">https://openmeetings.ap [...] "contact" : { - "name" : "Apache OpenMeetings Developer group", - "url" : "https://openmeetings.apache.org", + "name" : "Apache OpenMeetings Rest Examples and Documentation", + "url" : "https://openmeetings.apache.org/RestAPISample.html", "email" : "d...@openmeetings.apache.org" }, "license" : {