<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Rest API URL Null in Talend Studio</title>
    <link>https://community.qlik.com/t5/Talend-Studio/Rest-API-URL-Null/m-p/2244346#M30522</link>
    <description>Hi Talend experts 
&lt;BR /&gt;&amp;amp;nbsp; 
&lt;BR /&gt;I have got below job which reads next API URL until it finds one also it iterates for different course_ids. I have tweaked the design a bit to run parallel execution(the idea is to use parallel execution option of iterate) to execute multiple calls at a time. 
&lt;BR /&gt;&amp;amp;nbsp; 
&lt;BR /&gt;&amp;amp;nbsp; 
&lt;BR /&gt;StoreCourseID: 
&lt;BR /&gt;//globalMap.put("canvas_id", row1.canvas_id); 
&lt;BR /&gt;globalMap.put("V_API_URL" + row1.canvas_id, " 
&lt;A href="https://swinburneonline.instructure.com/api/v1/courses/&amp;quot;+" target="_blank" rel="nofollow noopener noreferrer"&gt;https://swinburneonline.instructure.com/api/v1/courses/"+&lt;/A&gt; row1.canvas_id +"/analytics/student_summaries?per_page=100"); 
&lt;BR /&gt;globalMap.put("V_LOOP"+ row1.canvas_id, true); 
&lt;BR /&gt;&amp;amp;nbsp; 
&lt;BR /&gt;tLoop: 
&lt;BR /&gt;((Boolean) globalMap.get("V_LOOP"+ row1.canvas_id)) 
&lt;BR /&gt;&amp;amp;nbsp; 
&lt;BR /&gt;tRestClient: 
&lt;BR /&gt;&amp;amp;nbsp; 
&lt;BR /&gt;((String) globalMap.get("V_API_URL" + row1.canvas_id)) 
&lt;BR /&gt;&amp;amp;nbsp; 
&lt;BR /&gt;GetNextUrl 
&lt;BR /&gt;System.out.println("Current URL IS: "+globalMap.get("V_API_URL"+ row1.canvas_id)); (prints correctly) 
&lt;BR /&gt;System.out.println("Rest URL"+ globalMap.get("tRESTClient_1_HEADERS")); (doesn't print and errors out to null) 
&lt;BR /&gt;java.util.List &amp;lt;STRING&amp;gt; strList&amp;amp;nbsp; = ((java.util.Map&amp;lt;STRING&amp;gt;&amp;amp;gt 
&lt;span class="lia-inline-image-display-wrapper" image-alt="0683p000009MA9p.png"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/138034i5F552429DA646D6F/image-size/large?v=v2&amp;amp;px=999" role="button" title="0683p000009MA9p.png" alt="0683p000009MA9p.png" /&gt;&lt;/span&gt;globalMap.get("tRESTClient_1_HEADERS")).get("Link"); 
&lt;BR /&gt;&amp;amp;nbsp; 
&lt;BR /&gt;//System.out.println("Link Header URL is:"+ strList); 
&lt;BR /&gt;&amp;amp;nbsp; 
&lt;BR /&gt;java.util.List &amp;lt;STRING&amp;gt; new_list = java.util.Arrays.asList(strList.get(0).split(",")); 
&lt;BR /&gt;int foundIndex = -1; 
&lt;BR /&gt;String next_url=""; 
&lt;BR /&gt;&amp;amp;nbsp; 
&lt;BR /&gt;for(int i=0; i &amp;amp;lt; new_list.size(); i++) 
&lt;BR /&gt;&amp;amp;nbsp; { 
&lt;BR /&gt;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp; if(new_list.get(i).indexOf("rel=\"next\"") != -1) 
&lt;BR /&gt;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp; { 
&lt;BR /&gt;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; System.out.println("Item Found..."); 
&lt;BR /&gt;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; foundIndex = i; 
&lt;BR /&gt;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; break; 
&lt;BR /&gt;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp; } 
&lt;BR /&gt;&amp;amp;nbsp; } 
&lt;BR /&gt;&amp;amp;nbsp; 
&lt;BR /&gt;&amp;amp;nbsp; if (foundIndex != -1) 
&lt;BR /&gt;&amp;amp;nbsp; { 
&lt;BR /&gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; String[] found_item = new_list.get(foundIndex).split(";");&amp;amp;nbsp; 
&lt;BR /&gt;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; 
&lt;BR /&gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; next_url=found_item[0].substring(1,found_item[0].length() - 1); 
&lt;BR /&gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; System.out.println("Next URL is: " + next_url); 
&lt;BR /&gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; globalMap.put("next_url"+row1.canvas_id,next_url);&amp;amp;nbsp; 
&lt;BR /&gt;&amp;amp;nbsp; } 
&lt;BR /&gt;&amp;amp;nbsp; else 
&lt;BR /&gt;&amp;amp;nbsp; { 
&lt;BR /&gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; System.out.println("No Next URL found..."); 
&lt;BR /&gt;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; 
&lt;BR /&gt;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; globalMap.put("V_LOOP"+ row1.canvas_id,false); 
&lt;BR /&gt;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; 
&lt;BR /&gt;&amp;amp;nbsp; } 
&lt;BR /&gt;&amp;amp;nbsp; 
&lt;BR /&gt;SetNextURlToCurrUrl: 
&lt;BR /&gt;&amp;amp;nbsp; 
&lt;BR /&gt;if ((Boolean) globalMap.get("V_LOOP"+row1.canvas_id)) 
&lt;BR /&gt;&amp;amp;nbsp;&amp;amp;nbsp; { 
&lt;BR /&gt;&amp;amp;nbsp;&amp;amp;nbsp; System.out.println("URL1 IS: "+globalMap.get("V_API_URL")); 
&lt;BR /&gt;&amp;amp;nbsp;&amp;amp;nbsp; globalMap.put("V_API_URL"+row1.canvas_id,globalMap.get("next_url"+row1.canvas_id)); 
&lt;BR /&gt;&amp;amp;nbsp;&amp;amp;nbsp; System.out.println("URL IS: "+globalMap.get("V_API_URL")); 
&lt;BR /&gt;&amp;amp;nbsp;&amp;amp;nbsp; } 
&lt;BR /&gt;&amp;amp;nbsp; 
&lt;BR /&gt;So it makes calls multiple times as an example below: 
&lt;BR /&gt; 
&lt;A href="https://abc.com/api/v1/courses/course_id1/analytics/student_summaries?per_page=100&amp;amp;amp;page=1" target="_blank" rel="nofollow noopener noreferrer"&gt;https://abc.com/api/v1/courses/course_id1/analytics/student_summaries?per_page=100&amp;amp;amp;page=1&lt;/A&gt; 
&lt;BR /&gt; 
&lt;A href="https://abc.com/api/v1/courses/course_id1/analytics/student_summaries?per_page=100&amp;amp;amp;page=2" target="_blank" rel="nofollow noopener noreferrer"&gt;https://abc.com/api/v1/courses/course_id1/analytics/student_summaries?per_page=100&amp;amp;amp;page=2&lt;/A&gt; 
&lt;BR /&gt; 
&lt;A href="https://abc.com/api/v1/courses/course_id1/analytics/student_summaries?per_page=100&amp;amp;amp;page=3" target="_blank" rel="nofollow noopener noreferrer"&gt;https://abc.com/api/v1/courses/course_id1/analytics/student_summaries?per_page=100&amp;amp;amp;page=3&lt;/A&gt; 
&lt;BR /&gt; 
&lt;A href="https://abc.com/api/v1/courses/course_id2/analytics/student_summaries?per_page=100&amp;amp;amp;page=1" target="_blank" rel="nofollow noopener noreferrer"&gt;https://abc.com/api/v1/courses/course_id2/analytics/student_summaries?per_page=100&amp;amp;amp;page=1&lt;/A&gt; 
&lt;BR /&gt; 
&lt;A href="https://abc.com/api/v1/courses/course_id3/analytics/student_summaries?per_page=100&amp;amp;amp;page=1" target="_blank" rel="nofollow noopener noreferrer"&gt;https://abc.com/api/v1/courses/course_id3/analytics/student_summaries?per_page=100&amp;amp;amp;page=1&lt;/A&gt; 
&lt;BR /&gt; 
&lt;A href="https://abc.com/api/v1/courses/course_id3/analytics/student_summaries?per_page=100&amp;amp;amp;page=2" target="_blank" rel="nofollow noopener noreferrer"&gt;https://abc.com/api/v1/courses/course_id3/analytics/student_summaries?per_page=100&amp;amp;amp;page=2&lt;/A&gt; 
&lt;BR /&gt; 
&lt;A href="https://abc.com/api/v1/courses/course_id3/analytics/student_summaries?per_page=100&amp;amp;amp;page=3" target="_blank" rel="nofollow noopener noreferrer"&gt;https://abc.com/api/v1/courses/course_id3/analytics/student_summaries?per_page=100&amp;amp;amp;page=3&lt;/A&gt; 
&lt;BR /&gt; 
&lt;A href="https://abc.com/api/v1/courses/course_id3/analytics/student_summaries?per_page=100&amp;amp;amp;page=4" target="_blank" rel="nofollow noopener noreferrer"&gt;https://abc.com/api/v1/courses/course_id3/analytics/student_summaries?per_page=100&amp;amp;amp;page=4&lt;/A&gt; 
&lt;BR /&gt;&amp;amp;nbsp; 
&lt;BR /&gt;So in doing so I have run into problem where Rest URL is always getting NULL when I get it from GetNextURL (tjava) component. Not sure what's wrong. Any help is really appreciated! 
&lt;BR /&gt;&amp;amp;nbsp; 
&lt;BR /&gt;Thanks 
&lt;BR /&gt;Harshal.&amp;lt;/STRING&amp;gt;&amp;lt;/STRING&amp;gt;&amp;lt;/STRING&amp;gt;</description>
    <pubDate>Sat, 16 Nov 2024 07:18:47 GMT</pubDate>
    <dc:creator>Parikhharshal</dc:creator>
    <dc:date>2024-11-16T07:18:47Z</dc:date>
    <item>
      <title>Rest API URL Null</title>
      <link>https://community.qlik.com/t5/Talend-Studio/Rest-API-URL-Null/m-p/2244346#M30522</link>
      <description>Hi Talend experts 
&lt;BR /&gt;&amp;amp;nbsp; 
&lt;BR /&gt;I have got below job which reads next API URL until it finds one also it iterates for different course_ids. I have tweaked the design a bit to run parallel execution(the idea is to use parallel execution option of iterate) to execute multiple calls at a time. 
&lt;BR /&gt;&amp;amp;nbsp; 
&lt;BR /&gt;&amp;amp;nbsp; 
&lt;BR /&gt;StoreCourseID: 
&lt;BR /&gt;//globalMap.put("canvas_id", row1.canvas_id); 
&lt;BR /&gt;globalMap.put("V_API_URL" + row1.canvas_id, " 
&lt;A href="https://swinburneonline.instructure.com/api/v1/courses/&amp;quot;+" target="_blank" rel="nofollow noopener noreferrer"&gt;https://swinburneonline.instructure.com/api/v1/courses/"+&lt;/A&gt; row1.canvas_id +"/analytics/student_summaries?per_page=100"); 
&lt;BR /&gt;globalMap.put("V_LOOP"+ row1.canvas_id, true); 
&lt;BR /&gt;&amp;amp;nbsp; 
&lt;BR /&gt;tLoop: 
&lt;BR /&gt;((Boolean) globalMap.get("V_LOOP"+ row1.canvas_id)) 
&lt;BR /&gt;&amp;amp;nbsp; 
&lt;BR /&gt;tRestClient: 
&lt;BR /&gt;&amp;amp;nbsp; 
&lt;BR /&gt;((String) globalMap.get("V_API_URL" + row1.canvas_id)) 
&lt;BR /&gt;&amp;amp;nbsp; 
&lt;BR /&gt;GetNextUrl 
&lt;BR /&gt;System.out.println("Current URL IS: "+globalMap.get("V_API_URL"+ row1.canvas_id)); (prints correctly) 
&lt;BR /&gt;System.out.println("Rest URL"+ globalMap.get("tRESTClient_1_HEADERS")); (doesn't print and errors out to null) 
&lt;BR /&gt;java.util.List &amp;lt;STRING&amp;gt; strList&amp;amp;nbsp; = ((java.util.Map&amp;lt;STRING&amp;gt;&amp;amp;gt 
&lt;span class="lia-inline-image-display-wrapper" image-alt="0683p000009MA9p.png"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/138034i5F552429DA646D6F/image-size/large?v=v2&amp;amp;px=999" role="button" title="0683p000009MA9p.png" alt="0683p000009MA9p.png" /&gt;&lt;/span&gt;globalMap.get("tRESTClient_1_HEADERS")).get("Link"); 
&lt;BR /&gt;&amp;amp;nbsp; 
&lt;BR /&gt;//System.out.println("Link Header URL is:"+ strList); 
&lt;BR /&gt;&amp;amp;nbsp; 
&lt;BR /&gt;java.util.List &amp;lt;STRING&amp;gt; new_list = java.util.Arrays.asList(strList.get(0).split(",")); 
&lt;BR /&gt;int foundIndex = -1; 
&lt;BR /&gt;String next_url=""; 
&lt;BR /&gt;&amp;amp;nbsp; 
&lt;BR /&gt;for(int i=0; i &amp;amp;lt; new_list.size(); i++) 
&lt;BR /&gt;&amp;amp;nbsp; { 
&lt;BR /&gt;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp; if(new_list.get(i).indexOf("rel=\"next\"") != -1) 
&lt;BR /&gt;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp; { 
&lt;BR /&gt;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; System.out.println("Item Found..."); 
&lt;BR /&gt;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; foundIndex = i; 
&lt;BR /&gt;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; break; 
&lt;BR /&gt;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp; } 
&lt;BR /&gt;&amp;amp;nbsp; } 
&lt;BR /&gt;&amp;amp;nbsp; 
&lt;BR /&gt;&amp;amp;nbsp; if (foundIndex != -1) 
&lt;BR /&gt;&amp;amp;nbsp; { 
&lt;BR /&gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; String[] found_item = new_list.get(foundIndex).split(";");&amp;amp;nbsp; 
&lt;BR /&gt;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; 
&lt;BR /&gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; next_url=found_item[0].substring(1,found_item[0].length() - 1); 
&lt;BR /&gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; System.out.println("Next URL is: " + next_url); 
&lt;BR /&gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; globalMap.put("next_url"+row1.canvas_id,next_url);&amp;amp;nbsp; 
&lt;BR /&gt;&amp;amp;nbsp; } 
&lt;BR /&gt;&amp;amp;nbsp; else 
&lt;BR /&gt;&amp;amp;nbsp; { 
&lt;BR /&gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; System.out.println("No Next URL found..."); 
&lt;BR /&gt;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; 
&lt;BR /&gt;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; globalMap.put("V_LOOP"+ row1.canvas_id,false); 
&lt;BR /&gt;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; 
&lt;BR /&gt;&amp;amp;nbsp; } 
&lt;BR /&gt;&amp;amp;nbsp; 
&lt;BR /&gt;SetNextURlToCurrUrl: 
&lt;BR /&gt;&amp;amp;nbsp; 
&lt;BR /&gt;if ((Boolean) globalMap.get("V_LOOP"+row1.canvas_id)) 
&lt;BR /&gt;&amp;amp;nbsp;&amp;amp;nbsp; { 
&lt;BR /&gt;&amp;amp;nbsp;&amp;amp;nbsp; System.out.println("URL1 IS: "+globalMap.get("V_API_URL")); 
&lt;BR /&gt;&amp;amp;nbsp;&amp;amp;nbsp; globalMap.put("V_API_URL"+row1.canvas_id,globalMap.get("next_url"+row1.canvas_id)); 
&lt;BR /&gt;&amp;amp;nbsp;&amp;amp;nbsp; System.out.println("URL IS: "+globalMap.get("V_API_URL")); 
&lt;BR /&gt;&amp;amp;nbsp;&amp;amp;nbsp; } 
&lt;BR /&gt;&amp;amp;nbsp; 
&lt;BR /&gt;So it makes calls multiple times as an example below: 
&lt;BR /&gt; 
&lt;A href="https://abc.com/api/v1/courses/course_id1/analytics/student_summaries?per_page=100&amp;amp;amp;page=1" target="_blank" rel="nofollow noopener noreferrer"&gt;https://abc.com/api/v1/courses/course_id1/analytics/student_summaries?per_page=100&amp;amp;amp;page=1&lt;/A&gt; 
&lt;BR /&gt; 
&lt;A href="https://abc.com/api/v1/courses/course_id1/analytics/student_summaries?per_page=100&amp;amp;amp;page=2" target="_blank" rel="nofollow noopener noreferrer"&gt;https://abc.com/api/v1/courses/course_id1/analytics/student_summaries?per_page=100&amp;amp;amp;page=2&lt;/A&gt; 
&lt;BR /&gt; 
&lt;A href="https://abc.com/api/v1/courses/course_id1/analytics/student_summaries?per_page=100&amp;amp;amp;page=3" target="_blank" rel="nofollow noopener noreferrer"&gt;https://abc.com/api/v1/courses/course_id1/analytics/student_summaries?per_page=100&amp;amp;amp;page=3&lt;/A&gt; 
&lt;BR /&gt; 
&lt;A href="https://abc.com/api/v1/courses/course_id2/analytics/student_summaries?per_page=100&amp;amp;amp;page=1" target="_blank" rel="nofollow noopener noreferrer"&gt;https://abc.com/api/v1/courses/course_id2/analytics/student_summaries?per_page=100&amp;amp;amp;page=1&lt;/A&gt; 
&lt;BR /&gt; 
&lt;A href="https://abc.com/api/v1/courses/course_id3/analytics/student_summaries?per_page=100&amp;amp;amp;page=1" target="_blank" rel="nofollow noopener noreferrer"&gt;https://abc.com/api/v1/courses/course_id3/analytics/student_summaries?per_page=100&amp;amp;amp;page=1&lt;/A&gt; 
&lt;BR /&gt; 
&lt;A href="https://abc.com/api/v1/courses/course_id3/analytics/student_summaries?per_page=100&amp;amp;amp;page=2" target="_blank" rel="nofollow noopener noreferrer"&gt;https://abc.com/api/v1/courses/course_id3/analytics/student_summaries?per_page=100&amp;amp;amp;page=2&lt;/A&gt; 
&lt;BR /&gt; 
&lt;A href="https://abc.com/api/v1/courses/course_id3/analytics/student_summaries?per_page=100&amp;amp;amp;page=3" target="_blank" rel="nofollow noopener noreferrer"&gt;https://abc.com/api/v1/courses/course_id3/analytics/student_summaries?per_page=100&amp;amp;amp;page=3&lt;/A&gt; 
&lt;BR /&gt; 
&lt;A href="https://abc.com/api/v1/courses/course_id3/analytics/student_summaries?per_page=100&amp;amp;amp;page=4" target="_blank" rel="nofollow noopener noreferrer"&gt;https://abc.com/api/v1/courses/course_id3/analytics/student_summaries?per_page=100&amp;amp;amp;page=4&lt;/A&gt; 
&lt;BR /&gt;&amp;amp;nbsp; 
&lt;BR /&gt;So in doing so I have run into problem where Rest URL is always getting NULL when I get it from GetNextURL (tjava) component. Not sure what's wrong. Any help is really appreciated! 
&lt;BR /&gt;&amp;amp;nbsp; 
&lt;BR /&gt;Thanks 
&lt;BR /&gt;Harshal.&amp;lt;/STRING&amp;gt;&amp;lt;/STRING&amp;gt;&amp;lt;/STRING&amp;gt;</description>
      <pubDate>Sat, 16 Nov 2024 07:18:47 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/Rest-API-URL-Null/m-p/2244346#M30522</guid>
      <dc:creator>Parikhharshal</dc:creator>
      <dc:date>2024-11-16T07:18:47Z</dc:date>
    </item>
    <item>
      <title>Re: Rest API URL Null</title>
      <link>https://community.qlik.com/t5/Talend-Studio/Rest-API-URL-Null/m-p/2244347#M30523</link>
      <description>&lt;A href="https://community.qlik.com/s/profile/005390000069RuGAAU"&gt;@rhall&lt;/A&gt; and 
&lt;A href="https://community.qlik.com/s/profile/0053p000007LOQnAAO"&gt;@gr44&lt;/A&gt;: please help.</description>
      <pubDate>Wed, 14 Nov 2018 05:58:28 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Talend-Studio/Rest-API-URL-Null/m-p/2244347#M30523</guid>
      <dc:creator>Parikhharshal</dc:creator>
      <dc:date>2018-11-14T05:58:28Z</dc:date>
    </item>
  </channel>
</rss>

