You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2018/01/03 14:49:31 UTC
[59/87] [abbrv] isis-site git commit: multi-version website now looks
ok
http://git-wip-us.apache.org/repos/asf/isis-site/blob/d1d0f1b8/content/guides/ugvro/ugvro.html
----------------------------------------------------------------------
diff --git a/content/guides/ugvro/ugvro.html b/content/guides/ugvro/ugvro.html
index 16eea6b..bc14948 100644
--- a/content/guides/ugvro/ugvro.html
+++ b/content/guides/ugvro/ugvro.html
@@ -179,7 +179,6 @@ table.CodeRay td.code>pre{padding:0}
<li><a href="../../guides/ugfun/ugfun.html">Fundamentals</a></li>
<li><a href="../../guides/ugvw/ugvw.html">Wicket Viewer</a></li>
<li><a href="../../guides/ugvro/ugvro.html">Restful Objects Viewer</a></li>
- <li><a href="../../guides/ugodn/ugodn.html">DataNucleus Object Store</a></li>
<li><a href="../../guides/ugsec/ugsec.html">Security</a></li>
<li><a href="../../guides/ugtst/ugtst.html">Testing</a></li>
<li><a href="../../guides/ugbtb/ugbtb.html">Beyond the Basics</a></li>
@@ -693,40 +692,24 @@ table.CodeRay td.code>pre{padding:0}
</div>
<div class="listingblock">
<div class="content">
- <pre class="CodeRay highlight"><code data-lang="xml"><span class="tag"><mb3:menuBars</span>
- <span class="attribute-name">xsi:schemaLocation</span>=<span class="string"><span class="delimiter">"</span><span class="content">...</span><span class="delimiter">"</span></span>
- <span class="attribute-name">xmlns:cpt</span>=<span class="string"><span class="delimiter">"</span><span class="content">http://isis.apache.org/applib/layout/component</span><span class="delimiter">"</span></span>
- <span class="attribute-name">xmlns:lnk</span>=<span class="string"><span class="delimiter">"</span><span class="content">http://isis.apache.org/applib/layout/links</span><span class="delimiter">"</span></span>
- <span class="attribute-name">xmlns:mb3</span>=<span class="string"><span class="delimiter">"</span><span class="content">http://isis.apache.org/applib/layout/menubars/bootstrap3</span><span class="delimiter">"</span></span>
- <span class="attribute-name">xmlns:xsi</span>=<span class="string"><span class="delimiter">"</span><span class="content">http://www.w3.org/2001/XMLSchema-instance</span><span class="delimiter">"</span></span><span class="tag">></span>
- <span class="tag"><mb3:primary></span>
- <span class="tag"><mb3:menu></span>
- <span class="tag"><mb3:named></span>Hello World Objects<span class="tag"></mb3:named></span>
- <span class="tag"><mb3:section></span>
- <span class="tag"><mb3:serviceAction</span> <span class="attribute-name">objectType</span>=<span class="string"><span class="delimiter">"</span><span class="content">helloworld.HelloWorldObjects</span><span class="delimiter">"</span></span> <span class="attribute-name">id</span>=<span class="string"><span class="delimiter">"</span><span class="content">create</span><span class="delimiter">"</span></span><span class="tag">></span>
- <span class="tag"><cpt:named></span>Create<span class="tag"></cpt:named></span>
- <span class="tag"></mb3:serviceAction></span>
- ...
- <span class="tag"></mb3:section></span>
- <span class="tag"></mb3:menu></span>
- <span class="tag"><mb3:menu</span> <span class="attribute-name">unreferencedActions</span>=<span class="string"><span class="delimiter">"</span><span class="content">true</span><span class="delimiter">"</span></span><span class="tag">></span>
- <span class="tag"><mb3:named></span>Other<span class="tag"></mb3:named></span>
- <span class="tag"></mb3:menu></span>
+ <pre class="CodeRay highlight"><code data-lang="xml"><span class="tag"><mnu:menuBars</span> <span class="attribute-name">xmlns:mnu</span>=<span class="string"><span class="delimiter">"</span><span class="content">http://isis.apache.org/applib/layout/menus</span><span class="delimiter">"</span></span> <span class="attribute-name">xmlns:lnk</span>=<span class="string"><span class="delimiter">"</span><span class="content">http://isis.apache.org/applib/layout/links</span><span class="delimiter">"</span></span><span class="tag">></span>
+ <span class="tag"><mnu:primary></span>
+ <span class="tag"><mnu:menu></span>
+ <span class="tag"><mnu:named></span>Hello World Objects<span class="tag"></mnu:named></span>
+ <span class="tag"><mnu:section></span>
+ <span class="tag"><mnu:action</span> <span class="attribute-name">oid</span>=<span class="string"><span class="delimiter">"</span><span class="content">helloworld.HelloWorldObjects:1</span><span class="delimiter">"</span></span> <span class="attribute-name">id</span>=<span class="string"><span class="delimiter">"</span><span class="content">create</span><span class="delimiter">"</span></span><span class="tag">></span>
+ <span class="tag"><mnu:named></span>Create<span class="tag"></mnu:named></span>
+ <span class="tag"></mnu:action></span>
...
- <span class="tag"></mb3:primary></span>
- <span class="tag"><mb3:secondary></span>
- ...
- <span class="tag"></mb3:secondary></span>
- <span class="tag"><mb3:tertiary></span>
- ...
- <span class="tag"></mb3:tertiary></span>
-<span class="tag"></mb3:menuBars></span></code></pre>
+ <span class="tag"></mnu:section></span>
+ ...
+ <span class="tag"></mnu:menu></span>
+ <span class="tag"></mnu:primary></span>
+ ...
+<span class="tag"></mnu:menuBars></span></code></pre>
</div>
</div>
<div class="paragraph">
- <p>Note that exactly one <code><mb3:menu></code> must have the <code>unreferencedActions</code> flag set. Any service actions that are not explicitly listed will be added to this menu.</p>
- </div>
- <div class="paragraph">
<p>The representation returned by home page resource (section 5.2 of the RO spec v1.0) has been extended to provide a link to this resource:</p>
</div>
<div class="listingblock">
@@ -746,23 +729,23 @@ table.CodeRay td.code>pre{padding:0}
</div>
</div>
<div class="paragraph">
- <p>The representation returned by the <code>/menuBars</code> resource (assuming an HTTP header of <code>Accept: application/xml</code>) is a superset of the <code>menu.layout.xml</code>; each action also includes a <code>link</code> to the corresponding Restful Objects resource:</p>
+ <p>The representation returned by the <code>/menuBars</code> resource (assuming an HTTP header of <code>Accept: applicatoin/xml</code>) is a superset of the <code>menu.layout.xml</code>; each action also includes a <code>link</code> to the corresponding Restful Objects resource:</p>
</div>
<div class="listingblock">
<div class="content">
- <pre class="CodeRay highlight"><code data-lang="xml"><span class="tag"><mb3:serviceAction</span> <span class="attribute-name">objectType</span>=<span class="string"><span class="delimiter">"</span><span class="content">helloworld.HelloWorldObjects</span><span class="delimiter">"</span></span> <span class="attribute-name">id</span>=<span class="string"><span class="delimiter">"</span><span class="content">create</span><span class="delimiter">"</span></span><span class="tag">></span>
- <span class="tag"><cpt:named></span>Create<span class="tag"></cpt:named></span>
- <span class="tag"><cpt:link></span>
- <span class="tag"><lnk:rel></span>urn:org.restfulobjects:rels/action<span class="tag"></lnk:rel></span>
- <span class="tag"><lnk:method></span>GET<span class="tag"></lnk:method></span>
- <span class="tag"><lnk:href></span>
- http://localhost:8080/restful/objects/helloworld.HelloWorldObjects/1/actions/create
- <span class="tag"></lnk:href></span>
- <span class="tag"><lnk:type></span>
- application/json;profile="urn:org.restfulobjects:repr-types/object-action"
- <span class="tag"></lnk:type></span>
- <span class="tag"></cpt:link></span>
-<span class="tag"></mb3:serviceAction></span></code></pre>
+ <pre class="CodeRay highlight"><code data-lang="xml"><span class="tag"><mnu:action</span> <span class="attribute-name">oid</span>=<span class="string"><span class="delimiter">"</span><span class="content">helloworld.HelloWorldObjects:1</span><span class="delimiter">"</span></span> <span class="attribute-name">id</span>=<span class="string"><span class="delimiter">"</span><span class="content">create</span><span class="delimiter">"</span></span><span class="tag">></span>
+ <span class="tag"><mnu:named></span>Create<span class="tag"></mnu:named></span>
+ <span class="tag"><mnu:link></span>
+ <span class="tag"><lnk:rel></span>urn:org.restfulobjects:rels/action<span class="tag"></lnk:rel></span>
+ <span class="tag"><lnk:method></span>GET<span class="tag"></lnk:method></span>
+ <span class="tag"><lnk:href></span>
+ http://localhost:8080/restful/objects/helloworld.HelloWorldObjects/1/actions/create
+ <span class="tag"></lnk:href></span>
+ <span class="tag"><lnk:type></span>
+ application/json;profile="urn:org.restfulobjects:repr-types/object-action"
+ <span class="tag"></lnk:type></span>
+ <span class="tag"></mnu:link></span>
+<span class="tag"></mnu:action></span></code></pre>
</div>
</div>
<div class="paragraph">
@@ -770,17 +753,17 @@ table.CodeRay td.code>pre{padding:0}
</div>
<div class="listingblock">
<div class="content">
- <pre class="CodeRay highlight"><code data-lang="json"><span class="key"><span class="delimiter">"</span><span class="content">serviceAction</span><span class="delimiter">"</span></span>: [
+ <pre class="CodeRay highlight"><code data-lang="json"><span class="key"><span class="delimiter">"</span><span class="content">action</span><span class="delimiter">"</span></span>: [
{
- <span class="key"><span class="delimiter">"</span><span class="content">objectType</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">helloworld.HelloWorldObjects</span><span class="delimiter">"</span></span>,
+ <span class="key"><span class="delimiter">"</span><span class="content">oid</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">helloworld.HelloWorldObjects:1</span><span class="delimiter">"</span></span>,
<span class="key"><span class="delimiter">"</span><span class="content">id</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">create</span><span class="delimiter">"</span></span>,
<span class="key"><span class="delimiter">"</span><span class="content">named</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">Create</span><span class="delimiter">"</span></span>,
<span class="key"><span class="delimiter">"</span><span class="content">link</span><span class="delimiter">"</span></span>: {
<span class="key"><span class="delimiter">"</span><span class="content">rel</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">urn:org.restfulobjects:rels/action</span><span class="delimiter">"</span></span>,
<span class="key"><span class="delimiter">"</span><span class="content">method</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">GET</span><span class="delimiter">"</span></span>,
<span class="key"><span class="delimiter">"</span><span class="content">href</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">http://localhost:8080/restful/objects/helloworld.HelloWorldObjects/1/actions/create</span><span class="delimiter">"</span></span>,
- <span class="key"><span class="delimiter">"</span><span class="content">type</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">application/json;profile=</span><span class="char">\"</span><span class="content">urn:org.restfulobjects:repr-types/object-action</span><span class="char">\"</span><span class="delimiter">"</span></span>
- }
+ <span class="key"><span class="delimiter">"</span><span class="content">type</span><span class="delimiter">"</span></span>: <span class="string"><span class="delimiter">"</span><span class="content">application/json;profile='urn:org.restfulobjects:repr-types/object-action'</span><span class="delimiter">"</span></span>
+ }
}</code></pre>
</div>
</div>
@@ -1874,93 +1857,6 @@ findCustomer.get({<span class="key">queryString</span>: JSON.stringify(findCusto
<p>To use, split the parts then format the mime type and base64 data correctly before using as source in an <code><img></code> tag.</p>
</div>
</div>
- <div class="sect2">
- <h3 id="_ugvro_hints-and-tips_view-model-as-parameter">7.5. View Model as Parameter</h3>
- <div class="btn-group" style="float: right; font-size: small; padding: 6px; margin-top: -55px; ">
- <button type="button" class="btn btn-xs btn-default" onclick="window.location.href="https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_hints-and-tips_view-model-as-parameter.adoc""><i class="fa fa-pencil-square-o"></i> Edit</button>
- <button type="button" class="btn btn-xs btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span><span class="sr-only">Toggle Dropdown</span></button>
- <ul class="dropdown-menu">
- <li><a href="https://github.com/apache/isis/edit/master/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_hints-and-tips_view-model-as-parameter.adoc" target="_blank"><i class="fa fa-pencil-square-o fa-fw" aria-hidden="true"></i> Edit</a></li>
- <li><a href="https://github.com/apache/isis/commits/master/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_hints-and-tips_view-model-as-parameter.adoc" target="_blank"><i class="fa fa-clock-o fa-fw" aria-hidden="true"></i> History</a></li>
- <li><a href="https://github.com/apache/isis/raw/master/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_hints-and-tips_view-model-as-parameter.adoc" target="_blank"><i class="fa fa-file-text-o fa-fw" aria-hidden="true"></i> Raw</a></li>
- <li><a href="https://github.com/apache/isis/blame/master/adocs/documentation/src/main/asciidoc/guides/ugvro/_ugvro_hints-and-tips_view-model-as-parameter.adoc" target="_blank"><i class="fa fa-hand-o-right fa-fw" aria-hidden="true"></i> Blame</a></li>
- </ul>
- </div>
- <div class="paragraph">
- <p>As discussed <a href="https://lists.apache.org/thread.html/cbd18320bbf6e5c5e767283f9e675cf56e7f4692c109e1e79dbaa90a@%3Cusers.isis.apache.org%3E">on the mailing list</a>.</p>
- </div>
- <div class="sect3">
- <h4 id="_query">7.5.1. Query</h4>
- <div class="paragraph">
- <p>I must provide a REST service accepting more complex view model as input parameter.</p>
- </div>
- <div class="paragraph">
- <p>My view model parameter would look like</p>
- </div>
- <div class="listingblock">
- <div class="content">
- <pre class="CodeRay highlight"><code data-lang="java"><span class="annotation">@DomainObject</span>(
- nature = Nature.VIEW_MODEL,
- objectType = <span class="string"><span class="delimiter">"</span><span class="content">OfferTemplateFilter</span><span class="delimiter">"</span></span>
-)
-<span class="annotation">@XmlRootElement</span>(name = <span class="string"><span class="delimiter">"</span><span class="content">OfferTemplateFilter</span><span class="delimiter">"</span></span>)
-<span class="annotation">@XmlAccessorType</span>(XmlAccessType.FIELD)
-<span class="annotation">@Getter</span> <span class="annotation">@Setter</span>
-<span class="directive">public</span> <span class="type">class</span> <span class="class">OfferTemplateFilter</span> {
- <span class="directive">public</span> <span class="predefined-type">List</span><<span class="predefined-type">String</span>> selectedDeviceManufacturer = <span class="keyword">new</span> <span class="predefined-type">ArrayList</span><>();
- <span class="directive">public</span> <span class="predefined-type">List</span><<span class="predefined-type">String</span>> selectedDeviceSizes = <span class="keyword">new</span> <span class="predefined-type">ArrayList</span><>();
-}</code></pre>
- </div>
- </div>
- <div class="paragraph">
- <p>My REST domain service would be someting like</p>
- </div>
- <div class="listingblock">
- <div class="content">
- <pre class="CodeRay highlight"><code data-lang="java"><span class="annotation">@DomainService</span>(
- nature = NatureOfService.VIEW_REST_ONLY,
- objectType = <span class="string"><span class="delimiter">"</span><span class="content">OfferRestService</span><span class="delimiter">"</span></span>
-)
-<span class="directive">public</span> <span class="type">class</span> <span class="class">OfferRestService</span> {
-
- <span class="annotation">@Action</span>(semantics = SemanticsOf.IDEMPOTENT)
- <span class="directive">public</span> OfferTemplateSelectorForCustomer
- offerSelectorForCustomer(
- <span class="directive">final</span> <span class="predefined-type">String</span> subscriberNumber,
- <span class="directive">final</span> OfferTemplateFilter filter) {
- <span class="keyword">return</span> offerSelectorRepository.create(subscriberNumber, filter);
- }
- ...
-}</code></pre>
- </div>
- </div>
- <div class="paragraph">
- <p>I’m wondering how this could be achieved without custom rest service. Ideally the service consumer would post a kind of JSON structure where my view model OfferTemplateFilter would be created?</p>
- </div>
- </div>
- <div class="sect3">
- <h4 id="_possible_answer">7.5.2. Possible Answer…</h4>
- <div class="paragraph">
- <p>Rather than try to "upload" the <code>OfferTemplateFilter</code> view model as a parameter, instead treat it as a resource.</p>
- </div>
- <div class="paragraph">
- <p>That is:</p>
- </div>
- <div class="ulist">
- <ul>
- <li> <p>have a new service to create an instance of the filter, and then</p> </li>
- <li> <p>update this filter (adding/removing from its two collections).</p> </li>
- <li> <p>When done, pass a reference to the filter to the original REST service, as a regular reference.</p> </li>
- </ul>
- </div>
- <div class="paragraph">
- <p>Obviously the URL passed in the last step will be rather long and messy, but that’s not a problem per-se.</p>
- </div>
- <div class="paragraph">
- <p><a href="https://lists.apache.org/thread.html/cbd18320bbf6e5c5e767283f9e675cf56e7f4692c109e1e79dbaa90a@%3Cusers.isis.apache.org%3E" class="bare">https://lists.apache.org/thread.html/cbd18320bbf6e5c5e767283f9e675cf56e7f4692c109e1e79dbaa90a@%3Cusers.isis.apache.org%3E</a></p>
- </div>
- </div>
- </div>
</div>
</div>
</div>