Calling an external rest service from Alfresco Share page

1.5k views Asked by At

I have created a rest service in a java application . I need to call this rest service on the click of a button in Alfresco Share page . How do i approacj it . Can i directly call the service with the url ?

1

There are 1 answers

0
alfrescian On BEST ANSWER

You can add a custom endpoint to SURF & use the SURF Proxy-Servlet: Example Flickr Endpoint share-config-custom.xml:

<alfresco-config>
   <config evaluator="string-compare" condition="Remote">
      <remote>       
         <endpoint>
            <id>flickr</id>
            <name>flickr - unauthenticated access for oembed resolution</name>
            <description>Access flickr to resolve URLs to embed presentations.</description>
            <connector-id>http</connector-id>
            <endpoint-url>http://www.flickr.com/services</endpoint-url>
            <identity>none</identity>
         </endpoint>         
      </remote>
   </config>
</alfresco-config>

In Browser JS Code just use the flickr endpoint via PROXY, e.g. add a new va PROXY_FLICKR_API :

var PROXY_FLICKR_API = Alfresco.constants.PROXY_URI.replace("/alfresco/", "/flickr/");
Alfresco.util.Ajax.jsonRequest(
     {
        method: Alfresco.util.Ajax.GET,
        url: PROXY_FLICKR_API + "add your concrete URL",
        successCallback:
        {
           ...
        },
        failureCallback:
        {
           ...
        }
     });

You should add your var PROXY_FLICKR_API JS declaration via SURF Extension mechanism - your target markupid is (more details http://blogs.alfresco.com/wp/developer/2012/05/22/customizing-share-javascript-widget-instantiation-part-1/):

<@markup id="yourid" target="resources" action="after">