<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 19:52:59 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>OpenDaylight JIRA</title>
    <link>https://jira.opendaylight.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>8.20.10</version>
        <build-number>820010</build-number>
        <build-date>22-06-2022</build-date>
    </build-info>


<item>
            <title>[CONTROLLER-428] RESTConf API Explorer: Add pagination and searching</title>
                <link>https://jira.opendaylight.org/browse/CONTROLLER-428</link>
                <project id="10113" key="CONTROLLER">controller</project>
                    <description>&lt;p&gt;There are a lot of yang modules (current count is 84) in controller. Rendering APIs for all those is extremely slow in API Explorer. Pagination and search support would limit the number of modules that needs to be rendered in UI. As a result, it would speed up the load time.&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: Mac OS&lt;br/&gt;
Platform: PC&lt;/p&gt;</environment>
        <key id="24982">CONTROLLER-428</key>
            <summary>RESTConf API Explorer: Add pagination and searching</summary>
                <type id="10100" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10310&amp;avatarType=issuetype">Improvement</type>
                                                <status id="5" iconUrl="https://jira.opendaylight.org/images/icons/statuses/resolved.png" description="A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.">Resolved</status>
                    <statusCategory id="3" key="done" colorName="green"/>
                                    <resolution id="10003">Cannot Reproduce</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="abhishk2@cisco.com">Abhishek Kumar</reporter>
                        <labels>
                    </labels>
                <created>Tue, 29 Apr 2014 20:42:43 +0000</created>
                <updated>Tue, 14 Nov 2017 15:17:58 +0000</updated>
                            <resolved>Thu, 2 Oct 2014 20:29:46 +0000</resolved>
                                    <version>Helium</version>
                                                    <component>restconf</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>6</watches>
                                                                                                                <comments>
                            <comment id="48185" author="jgloncak" created="Fri, 11 Jul 2014 12:46:27 +0000"  >&lt;p&gt;Is it possible to use pagination? Can you give me some hint?&lt;/p&gt;</comment>
                            <comment id="48186" author="devin.avery@brocade.com" created="Fri, 11 Jul 2014 12:55:21 +0000"  >&lt;p&gt;Here is how I would approach this.&lt;/p&gt;

&lt;p&gt;1) Split searching into another bug &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.opendaylight.org/images/icons/emoticons/smile.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;br/&gt;
2) For pagination... see below.&lt;/p&gt;

&lt;p&gt;To add pagination the first thing you would need to do is modify the rest APIs to take a page number as a query parameter, and possible a page size.&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;I would make these arguments optional&lt;/li&gt;
	&lt;li&gt;If pageSize is provided, but not pageNumber, default pageNumber = 1&lt;/li&gt;
	&lt;li&gt;If pageNumber is provided, but not pageSize, default pageSize=20 (or some other number)&lt;/li&gt;
	&lt;li&gt;If neither page # or page size is provided, then default pageNumber=1 and pageSize = to max size (i.e. all)&lt;/li&gt;
	&lt;li&gt;Paging relies on having a sorted list so you can correctly index into the list each time. Since we already sort the modules by name / revision etc this shouldn&apos;t be difficult. So likely you can continue to get back the entire list of modules and then page as a second step if needed.&lt;/li&gt;
	&lt;li&gt;You also need to modify the return information to somehow include either:&lt;br/&gt;
      1) That there is a &quot;next page&quot; or&lt;br/&gt;
      2) How many more elements there are, so the UI can figure out what the next page is.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Once you have modified the APIs to support paging you need to modify the web page to provide the concept of paging. This will require modifying the HTML page to make the initial call with the correct page information and then showing what page you are on, providing next calls etc. You will see that we have already abstracted away the idea of loading the swagger UI to a method call, so that should hopefully be easy. So when someone loads the next page, you make the new rest call with the new page information.&lt;/p&gt;</comment>
                            <comment id="48187" author="devin.avery@brocade.com" created="Fri, 11 Jul 2014 13:00:19 +0000"  >&lt;p&gt;I should add though - the &quot;slowness&quot; that is referred to in this bug is really caused by the hundreds of  possible rest calls under each module. Not the number of modules. We actually reduce the number of modules down to 18 by removing any module that didn&apos;t have a rest conf URL exposed.&lt;/p&gt;

&lt;p&gt;So paging modules actually isn&apos;t going to get us much...&lt;/p&gt;

&lt;p&gt;So what I said before is probably the wrong thing. We really want to page the URLs underneath a module...and that I am not sure how to do - it seems like it is something that would need to be added to the swagger functionality.&lt;/p&gt;

&lt;p&gt;Perhaps we should just settle with showing a loading indicator while the swagger UI is doing its thing...??&lt;/p&gt;</comment>
                            <comment id="48188" author="jgloncak" created="Wed, 1 Oct 2014 10:38:06 +0000"  >&lt;p&gt;It was reported that pagination and searching should be available to&lt;br/&gt;
decrease amount of data which have to be transferred when REST API for all&lt;br/&gt;
YANG modules is generated.&lt;/p&gt;

&lt;p&gt;Currently after GET on&lt;br/&gt;
&lt;a href=&quot;http://server:port/apidoc/apis/modules&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://server:port/apidoc/apis/modules&lt;/a&gt;&lt;br/&gt;
the list of yang modules will be returned. Every listed module contains at&lt;br/&gt;
least one rpc or list|container as top level. It is also possible to&lt;br/&gt;
search via searching area in top right corner. It is also possible to&lt;br/&gt;
display pagination (currently it is switched off).&lt;br/&gt;
This returning html isn&apos;t existing file and is generating. Probably it would be possible to create html file which would do this REST call bug it would require more investigation&lt;/p&gt;

&lt;p&gt;Every module name in table is hyperlink&lt;br/&gt;
&lt;a href=&quot;http://server:port/apidoc/explorer?moduleName=name&amp;amp;revision=YYYY-DD-MM&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://server:port/apidoc/explorer?moduleName=name&amp;amp;revision=YYYY-DD-MM&lt;/a&gt;&lt;br/&gt;
It will navigate swagger UI where only API links for this module are loaded.&lt;/p&gt;

&lt;p&gt;Original access to REST apis kept preserved. It means that is is still&lt;br/&gt;
possible to list all REST apis via&lt;br/&gt;
&lt;a href=&quot;http://server:port/appidoc/explorer&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://server:port/appidoc/explorer&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Patch set &lt;br/&gt;
&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/11691/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/11691/&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="48189" author="abhishk2@cisco.com" created="Thu, 2 Oct 2014 20:29:46 +0000"  >&lt;p&gt;This enhancement is not needed anymore. The list of yang modules loaded in api explorer has been filtered down to about 20 and the UI rendering is not slow anymore.&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                            <customfield id="customfield_11400" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10208" key="com.atlassian.jira.plugin.system.customfieldtypes:textfield">
                        <customfieldname>External issue ID</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>906</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10201" key="com.atlassian.jira.plugin.system.customfieldtypes:url">
                        <customfieldname>External issue URL</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[https://bugs.opendaylight.org/show_bug.cgi?id=906]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10204" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>ODL SR Target Milestone</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10315"><![CDATA[Lithium]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10202" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Priority</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10312"><![CDATA[High]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i02kc7:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>