5

The html returned by a rest mapservice url includes "supported extensions" down at the bottom. However the json returned does not list the extensions. Is there a way to get this list of SOE's in a json format?

I'd include a sample url, but I can't find any rest SOE's when I search - does anyone know of a sample that has been published?

Update Thanks to Bill, here's an ESRI sample that illustrates the issue: The html page returns Supported Extensions, but when formatted as json, it doesn't.

Update 2 ESRI support filed it as an enhance request (NIM062551).

2

I don't see how to do it. The REST API documentation discusses how to get information about SOEs as child resources of a MapServer (http://help.arcgis.com/en/arcgisserver/10.0/apis/rest/index.html?admin.html). Logic would indicate that {MapServer URL}/exts should return a list of SOEs but it returns an error. Only when you specifically call down to the SOE resource do you get a response.

To me, this seems to be a gap in the API. If you know of a specific SOE, you can get information about it, but I don't see any way to get a list of available SOEs in the first place.

3

If you're willing to do something absolutely moderately awful, you could get the contents of that page as HTML, and then use jQuery to get the links:

var extAnchors = $('b').filter( function( index ) { 
   if( this.innerHTML.match( 'Supported Extensions' ) ) 
      return true; 
   } ).nextAll('a');

This gets all the anchor elements after the phrase "Supported Extensions". You'd at least have something to work with until ESRI patches the API.

I'll see if I can come up with an equivalent for use with Dojo, which I like about 100 times less than jQuery.

  • Thanks Herb. Right now I'm really just needing to know if a mapservice has a particular SOE - not a list of all soe's. I will need that eventually. But for now, since I'm using WPF, I think I'll just using webclient to see if a rest error json string is returned for the soe's expected url. – Kirk Kuykendall Nov 4 '10 at 18:48
0

I guess one alternative approach would to be implement another REST SOE which would provide a JSON list of other enabled extensions.

You can use the IServerObjectExtensionManager interface for that, but this of course assumes you know the names or GUIDs of all the registered extensions, since as far as I know, there is no way to access IServerObjectConfiguration3 or IServerObjectManager2.GetExtensionTypeInfos from within your SOE, which would be helpful.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.