When you create a Sling Servlet -- an external app can hit the URL and do GETs or POSTs for example. Here is a community article that talks about how to do that. As a use case - an external Java app POSTs files to an AEM sling servlet.
http://helpx.adobe.com/experience-manager/using/post_files.html
However - you can develop the Sling Servlet to do what you want and return data or accept data to fit your business requirements.
Likewise -- you can create an AEM OSGi bundle that can consume an external/'3rd party Restful web service. For details -- see this community article:
http://helpx.adobe.com/experience-manager/using/restful-services.html
Hope this helps