You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2017/04/13 20:41:31 UTC

incubator-juneau-website git commit: Info about 3rd-party proxy interfaces.

Repository: incubator-juneau-website
Updated Branches:
  refs/heads/asf-site d30c0d0aa -> 96d6185d1


Info about 3rd-party proxy interfaces.

Project: http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/commit/96d6185d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/tree/96d6185d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/diff/96d6185d

Branch: refs/heads/asf-site
Commit: 96d6185d12f835eae09b79e4e4a05baff240d756
Parents: d30c0d0
Author: JamesBognar <ja...@apache.org>
Authored: Thu Apr 13 16:41:28 2017 -0400
Committer: JamesBognar <ja...@apache.org>
Committed: Thu Apr 13 16:41:28 2017 -0400

----------------------------------------------------------------------
 content/about.html | 27 +++++++++++++++++++++++++--
 1 file changed, 25 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/96d6185d/content/about.html
----------------------------------------------------------------------
diff --git a/content/about.html b/content/about.html
index 5a30934..133f4b7 100644
--- a/content/about.html
+++ b/content/about.html
@@ -8,14 +8,16 @@
 </head>
 <body>
 	<h5 class='toc'>About</h5>
+	<p>
+		A single cohesive framework consisting of the following parts:
+	</p>
 	<ul class='spaced-list'>
 		<li>A toolkit for marshalling POJOs to a variety of content types using a common framework.
 		<li>A REST server API for creating Swagger-based self-documenting REST interfaces using POJOs.
 		<li>A REST client API for interacting with REST interfaces using POJOs.
-		<li>A remote proxy API built on top of REST.
+		<li>A remote interface proxy API built on top of REST that allows you to create proxy interfaces against Juneau or 3rd-party REST interfaces.
 		<li>A sophisticated INI config file API. 
 		<li>A REST microservice API that combines all the features above for creating lightweight standalone REST interfaces that start up in milliseconds.
-		<li>JAX-RS integration support for all serializers and parsers.
 	</ul>
 	<p>
 		Questions via email to <a class='doclink' href='mailto:dev@juneau.apache.org?Subject=Apache%20Juneau%20question'>dev@juneau.apache.org</a> are always welcome.
@@ -841,6 +843,27 @@
 	</p>
 	<br><br><hr>
 	<p>
+		Remoteable proxies can also be used to define interface proxies against 3rd-party REST interfaces.
+		This is an extremely powerful feature that allows you to quickly define easy-to-use interfaces against virtually any REST interface.
+	</p>
+	<p>
+		Similar in concept to remoteable services defined above, but in this case we simply define our interface with
+		special annotations that tell us how to convert input and output to HTTP headers, query paramters, form post parameters, or request/response bodies.
+	</p>
+	<p class='bcode'>	
+	<ja>@Remoteable</ja>
+	<jk>public interface</jk> MyProxyInterface {
+		
+		<ja>@RemoteMethod</ja>(httpMethod=<js>"POST"</js>, path=<js>"/method"</js>)
+		String doMethod(<ja>@Header</ja>(<js>"E-Tag"</js>) UUID etag, <ja>@Query</ja>(<js>"debug"</js>) <jk>boolean</jk> debug, <ja>@Body</ja> MyPojo pojo);
+	}
+	
+	RestClient client = <jk>new</jk> RestClientBuilder().build();
+	MyProxyInterface p = client.getRemoteableProxy(MyProxyInterface.<jk>class</jk>, <js>"http://hostname/some/rest/interface"</js>);
+	String response = p.doMethod(UUID.<jsm>generate</jsm>(), <jk>true</jk>, <jk>new</jk> MyPojo());
+	</p>
+	<br><br><hr>
+	<p>
 		The config file API allows you to interact with INI files using POJOs.  
 		A sophisticated variable language is provided for referencing environment variables, system properties, other config file entries, and a host of other types.
 	<p>