Per the ArcGIS REST API Item Types page, there is a Web Mapping Application type. See here: ArcGIS REST API
Using that item type, when I call
gis<SPAN class="punctuation token">.</SPAN>content<SPAN class="punctuation token">.</SPAN>search<SPAN class="punctuation token">(</SPAN><SPAN class="string token">''</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">'web mapping application'</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN></SPAN>
on a portal I can receive back JSON for items built using different templates (e.g. WebApp Builder and Storymaps).
However, the JSON appears to vary between the item types (see bellow).
Is there a method in the API that would allow us to more easily parse the varying data structures when we call
gis<SPAN class="punctuation token">.</SPAN>content<SPAN class="punctuation token">.</SPAN>search<SPAN class="punctuation token">(</SPAN><SPAN class="string token">''</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">'web mapping application'</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN></SPAN>
I'm attempting to harvest both a list of all web mapping applications in a given portal and slice through their JSON to retrieve the underlying webmap ID in order to visualize 1:M relationships.
Sample Storymap Data:
<SPAN class="punctuation token">{</SPAN>
<SPAN class="string token">"source"</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="string token">"sourceID"</SPAN><SPAN class="punctuation token">,</SPAN>
<SPAN class="string token">"folderId"</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="keyword token">null</SPAN><SPAN class="punctuation token">,</SPAN>
<SPAN class="string token">"values"</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="punctuation token">{</SPAN>
<SPAN class="string token">"title"</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="string token">"Title"</SPAN><SPAN class="punctuation token">,</SPAN>
<SPAN class="string token">"subtitle"</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="string token">"Title"</SPAN><SPAN class="punctuation token">,</SPAN>
<SPAN class="string token">"order"</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="punctuation token">[</SPAN>
<SPAN class="punctuation token">{</SPAN>
<SPAN class="string token">"id"</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="number token">28</SPAN><SPAN class="punctuation token">,</SPAN>
<SPAN class="string token">"visible"</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="keyword token">false</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN>
<SPAN class="string token">"webmap"</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="string token">"authoring webmap ID"</SPAN><SPAN class="punctuation token">,</SPAN>
<SPAN class="string token">"layout"</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="string token">"integrated"</SPAN><SPAN class="punctuation token">,</SPAN>
<SPAN class="string token">"placardPosition"</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN>
<SPAN class="string token">"locationButton"</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="keyword token">true</SPAN><SPAN class="punctuation token">,</SPAN>
<SPAN class="string token">"colors"</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="string token">"#152638;#728294;#ebebeb"</SPAN><SPAN class="punctuation token">,</SPAN>
<SPAN class="string token">"headerLinkText"</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN>
<SPAN class="string token">"headerLinkURL"</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN>
<SPAN class="string token">"logoURL"</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN>
<SPAN class="string token">"logoTarget"</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="string token">"URL"</SPAN><SPAN class="punctuation token">,</SPAN>
<SPAN class="string token">"social"</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="punctuation token">{</SPAN>
<SPAN class="string token">"facebook"</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="keyword token">false</SPAN><SPAN class="punctuation token">,</SPAN>
<SPAN class="string token">"twitter"</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="keyword token">false</SPAN><SPAN class="punctuation token">,</SPAN>
<SPAN class="string token">"bitly"</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="keyword token">false</SPAN>
<SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">,</SPAN>
<SPAN class="string token">"zoomLevel"</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="string token">"18"</SPAN><SPAN class="punctuation token">,</SPAN>
<SPAN class="string token">"sourceLayer"</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="string token">"maptour-layer1475173714814_0"</SPAN><SPAN class="punctuation token">,</SPAN>
<SPAN class="string token">"template"</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="string token">"Map Tour"</SPAN><SPAN class="punctuation token">,</SPAN>
<SPAN class="string token">"templateCreation"</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="string token">"2.5.2"</SPAN><SPAN class="punctuation token">,</SPAN>
<SPAN class="string token">"templateVersion"</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="string token">"2.8.0"</SPAN><SPAN class="punctuation token">,</SPAN>
<SPAN class="string token">"firstRecordAsIntro"</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="keyword token">true</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="punctuation token">}</SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>Sample WebApp Builder Data
<SPAN class="punctuation token">{</SPAN>
theme<SPAN class="punctuation token">:</SPAN> <SPAN class="punctuation token">{</SPAN>
name<SPAN class="punctuation token">:</SPAN> <SPAN class="string token">"FoldableTheme"</SPAN><SPAN class="punctuation token">,</SPAN>
styles<SPAN class="punctuation token">:</SPAN> <SPAN class="punctuation token">[</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN>
version<SPAN class="punctuation token">:</SPAN> <SPAN class="string token">"2.0"</SPAN>
<SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">,</SPAN>
portalUrl<SPAN class="punctuation token">:</SPAN> <SPAN class="string token"><SPAN>"</SPAN><A class="jive-link-external-small" href="https://community.esri.com/external-link.jspa?url=http%3A%2F%2Ftempegov.maps.arcgis.com" target="_blank">http://tempegov.maps.arcgis.com</A><SPAN>"</SPAN></SPAN><SPAN class="punctuation token">,</SPAN>
appId<SPAN class="punctuation token">:</SPAN> <SPAN class="string token">""</SPAN><SPAN class="punctuation token">,</SPAN>
authorizedCrossOriginDomains<SPAN class="punctuation token">:</SPAN> <SPAN class="punctuation token">[</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN>
title<SPAN class="punctuation token">:</SPAN> <SPAN class="string token">"Zoning and Overlay Districts"</SPAN><SPAN class="punctuation token">,</SPAN>
subtitle<SPAN class="punctuation token">:</SPAN> <SPAN class="string token">"<div class="</SPAN>attribute<SPAN class="operator token">-</SPAN>custom<SPAN class="operator token">-</SPAN>style<SPAN class="string token">"></div>"</SPAN><SPAN class="punctuation token">,</SPAN>
keepAppState<SPAN class="punctuation token">:</SPAN> <SPAN class="keyword token">true</SPAN><SPAN class="punctuation token">,</SPAN>
links<SPAN class="punctuation token">:</SPAN> <SPAN class="punctuation token">[</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">,</SPAN>
widgetOnScreen<SPAN class="punctuation token">:</SPAN> <SPAN class="punctuation token">{</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">,</SPAN>
map<SPAN class="punctuation token">:</SPAN> <SPAN class="punctuation token">{</SPAN>
3D<SPAN class="punctuation token">:</SPAN> <SPAN class="keyword token">false</SPAN><SPAN class="punctuation token">,</SPAN>
2D<SPAN class="punctuation token">:</SPAN> <SPAN class="keyword token">true</SPAN><SPAN class="punctuation token">,</SPAN>
position<SPAN class="punctuation token">:</SPAN> <SPAN class="punctuation token">{</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">,</SPAN>
itemId<SPAN class="punctuation token">:</SPAN> <SPAN class="string token">"84d75bd05f1d47f8a0266f8778c4498f"</SPAN><SPAN class="punctuation token">,</SPAN>
mapOptions<SPAN class="punctuation token">:</SPAN> <SPAN class="punctuation token">{</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">,</SPAN>
id<SPAN class="punctuation token">:</SPAN> <SPAN class="string token">"map"</SPAN><SPAN class="punctuation token">,</SPAN>
portalUrl<SPAN class="punctuation token">:</SPAN> <SPAN class="string token"><SPAN>"</SPAN><A class="jive-link-external-small" href="https://community.esri.com/external-link.jspa?url=http%3A%2F%2Ftempegov.maps.arcgis.com" target="_blank">http://tempegov.maps.arcgis.com</A><SPAN>"</SPAN></SPAN>
<SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">,</SPAN>
widgetPool<SPAN class="punctuation token">:</SPAN> <SPAN class="punctuation token">{</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">,</SPAN>
mobileLayout<SPAN class="punctuation token">:</SPAN> <SPAN class="punctuation token">{</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">,</SPAN>
loadingPage<SPAN class="punctuation token">:</SPAN> <SPAN class="punctuation token">{</SPAN>
backgroundColor<SPAN class="punctuation token">:</SPAN> <SPAN class="string token">"#508dca"</SPAN><SPAN class="punctuation token">,</SPAN>
backgroundImage<SPAN class="punctuation token">:</SPAN> <SPAN class="punctuation token">{</SPAN>
visible<SPAN class="punctuation token">:</SPAN> <SPAN class="keyword token">false</SPAN>
<SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">,</SPAN>
loadingGif<SPAN class="punctuation token">:</SPAN> <SPAN class="punctuation token">{</SPAN>
visible<SPAN class="punctuation token">:</SPAN> <SPAN class="keyword token">true</SPAN><SPAN class="punctuation token">,</SPAN>
uri<SPAN class="punctuation token">:</SPAN> <SPAN class="string token">"configs/loading/images/predefined_loading_1.gif"</SPAN><SPAN class="punctuation token">,</SPAN>
width<SPAN class="punctuation token">:</SPAN> <SPAN class="number token">58</SPAN><SPAN class="punctuation token">,</SPAN>
height<SPAN class="punctuation token">:</SPAN> <SPAN class="number token">29</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">,</SPAN>
wabVersion<SPAN class="punctuation token">:</SPAN> <SPAN class="string token">"2.4"</SPAN><SPAN class="punctuation token">,</SPAN>
_buildInfo<SPAN class="punctuation token">:</SPAN> <SPAN class="punctuation token">{</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">,</SPAN>
isWebTier<SPAN class="punctuation token">:</SPAN> <SPAN class="keyword token">false</SPAN><SPAN class="punctuation token">,</SPAN>
httpProxy<SPAN class="punctuation token">:</SPAN> <SPAN class="punctuation token">{</SPAN><SPAN class="punctuation token">}</SPAN>
<SPAN class="punctuation token">}</SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>