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 <[email protected]> Authored: Thu Apr 13 16:41:28 2017 -0400 Committer: JamesBognar <[email protected]> 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:[email protected]?Subject=Apache%20Juneau%20question'>[email protected]</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>
