Changes for page ERRest In Depth

Last modified by Pascal Robert on 2012/06/10 16:01

From version 47.2
edited by Pascal Robert
on 2012/06/10 16:01
Change comment: Changed document parent to [xwiki:~probert.Home.WebHome].
To version 45.1
edited by Pascal Robert
on 2012/06/10 16:01
Change comment: There is no comment for this version

Summary

Details

Page properties
Parent
... ... @@ -1,1 +1,0 @@
1 -~probert.Home.WebHome
Content
... ... @@ -1,20 +1,20 @@
1 1  General architecture
2 - Same Origin policy
3 - Transactions
4 - HTML vs other formats
5 - Response representation
6 - Missing route
7 - Missing object
8 - POJO objects
9 - Headers
10 - Caching
11 - Adding new format
12 - Security
13 - strictMode
14 - Workflow
15 - Query arguments and RXRestFetchSpecification
16 - ERXRestNameRegistry
17 - MapClassDescription / NSDictionaryClassDescription
2 +Same Origin policy
3 +Transactions
4 +HTML vs other formats
5 +Response representation
6 +Missing route
7 +Missing object
8 +POJO objects
9 +Headers
10 +Caching
11 +Adding new format
12 +Security
13 +strictMode
14 +Workflow
15 +Query arguments and RXRestFetchSpecification
16 +ERXRestNameRegistry
17 +MapClassDescription / NSDictionaryClassDescription
18 18  
19 19  Calling an action goes like this:
20 20  
... ... @@ -79,6 +79,7 @@
79 79  ERXRouteController.performHtmlActionNamed
80 80  
81 81  {{code}}
82 +
82 82   protected WOActionResults performHtmlActionNamed(String actionName) throws Exception {
83 83   WOActionResults results = null;
84 84  
... ... @@ -106,14 +106,17 @@
106 106  
107 107   return results;
108 108   }
109 -{{/code}}
110 110  
111 +{{/code}}
112 +
111 111  {{code}}
114 +
112 112   protected String pageNameForAction(String actionName) {
113 113   return entityName() + ERXStringUtilities.capitalize(actionName) + "Page";
114 114   }
115 -{{/code}}
116 116  
119 +{{/code}}
120 +
117 117  {{code}}
118 118  
119 119   protected boolean shouldFailOnMissingHtmlPage() {
... ... @@ -124,7 +124,7 @@
124 124  
125 125  ERXRestUtils
126 126  
127 -request -> route
131 +request > route
128 128  
129 129  {{code}}
130 130  
... ... @@ -149,8 +149,10 @@
149 149  * ERXRestContext
150 150  ** contains the editing context and an userInfo dictionnary
151 151  ** will be populated with er.rest.dateFormat, er.rest.timestampFormatter and er.rest.timestampFormat (read only for non-HTML responses)
152 -*** want to change the time format for a specific controller?
153 -** {{code}}
156 +*** want to change the time format for a specific controller?
157 +
158 +{{code}}
159 +
154 154  protected ERXRestContext createRestContext() {
155 155   ERXRestContext restContext = new ERXRestContext(editingContext());
156 156   restContext.setUserInfoForKey("yyyy-MM-dd", "er.rest.dateFormat");
... ... @@ -157,10 +157,14 @@
157 157   restContext.setUserInfoForKey("yyyy-MM-dd", "er.rest.timestampFormat");
158 158   return restContext;
159 159   }
160 -{{/code}}you just need to override createRestContext() in your controller if you want to add other stuff to the context (a user, etc.)
166 +
167 +{{/code}}
168 +
169 +*
170 +** you just need to override createRestContext() in your controller if you want to add other stuff to the context (a user, etc.)
161 161  * Properties
162 162  ** ERXRest.idKey (ERXRestFormatDelegate)
163 -*** (default "id") Override this property if you want to use a different key for the 'id' attribute~*~* ERXRest.typeKey
173 +*** (default "id") Override this property if you want to use a different key for the 'id' attribute** ERXRest.typeKey**
164 164  ** ERXRest.nilKey (ERXRestFormatDelegate)
165 165  ** ERXRest.writeNilKey (ERXRestFormatDelegate)
166 166  ** ERXRest.pluralEntityNames (ERXRestFormatDelegate)
... ... @@ -197,14 +197,11 @@
197 197  *** (default "xml") Allow you to set the default format for all of your REST controllers
198 198  ** ERXRest.allowWindowNameCrossDomainTransport (ERXRouteController)
199 199  ** ERXRest.accessControlMaxAge (ERXRouteController)
200 -*** (default 1728000) This header indicates how long the results of a preflight request can be cached. For an example of a preflight request, see the above examples.
210 +*** (default 1728000) This header indicates how long the results of a preflight request can be cached. For an example of a preflight request, see the above examples.
201 201  ** ERXRest.accessControlAllowOrigin (ERXRouteController)
202 -*** Set the value to '*' to enable all origins. See [[https:~~/~~/developer.mozilla.org/En/HTTP_access_control#Access-Control-Allow-Origin>>url:https://developer.mozilla.org/En/HTTP_access_control#Access-Control-Allow-Origin||shape="rect"]]
212 +*** Set the value to '**' to enable all origins. See [[https://developer.mozilla.org/En/HTTP_access_control#Access-Control-Allow-Origin]]**
203 203  * JSON Schema
204 -**
205 -
206 -{{code}}
207 -
214 +** {{code}}
208 208  /something?schema=true
209 209  
210 210  public WOActionResults indexAction() {
... ... @@ -214,66 +214,36 @@
214 214  protected boolean isSchemaRequest() {
215 215   return request().stringFormValueForKey("schema") != null;
216 216  }
217 -
218 218  {{/code}}
219 219  
220 220  Application(ERXApplication).dispatchRequest(WORequest) line: 2051
221 - ERXRouteRequestHandler(WOActionRequestHandler)._handleRequest(WORequest) line: 221
222 - ERXRouteRequestHandler.getRequestHandlerPathForRequest(WORequest) line: 782
227 +ERXRouteRequestHandler(WOActionRequestHandler).//handleRequest(WORequest) line: 221
228 +ERXRouteRequestHandler.getRequestHandlerPathForRequest(WORequest) line: 782//
223 223  
224 -ERXRouteRequestHandler(WOActionRequestHandler)._handleRequest(WORequest) line: 259
225 - PagesController(ERXRouteController).performActionNamed(String) line: 1328
226 - PagesController(ERXRouteController).performActionNamed(String, boolean) line: 1385
227 - PagesController(ERXRouteController).performRouteActionNamed(String) line: 1510
228 - PagesController(ERXRouteController).performActionWithArguments(Method, Object...) line: 1559
229 - ...
230 - PagesController.mainPageAction() line: 20
230 +ERXRouteRequestHandler(WOActionRequestHandler).//handleRequest(WORequest) line: 259
231 +PagesController(ERXRouteController).performActionNamed(String) line: 1328
232 +PagesController(ERXRouteController).performActionNamed(String, boolean) line: 1385
233 +PagesController(ERXRouteController).performRouteActionNamed(String) line: 1510
234 +PagesController(ERXRouteController).performActionWithArguments(Method, Object...) line: 1559
235 +...
236 +PagesController.mainPageAction() line: 20//
231 231  
232 232  == ERXRouteRequestHandler ==
233 233  
234 -|(((
235 -**Properties**
236 -)))
237 -|(((
238 -ERXRest.missingControllerName
239 -)))|(((
240 -(default "ERXMissingRouteController")
241 -
242 -)))
243 -|(((
244 -ERXRest.parseUnknownExtensions
245 -)))|(((
246 -ERXRest.parseUnknownExtensions
247 -
248 -)))
249 -|(((
250 -ERXRest.pluralEntityNames
251 -)))|(((
252 -ERXRest.pluralEntityNames
253 -
254 -)))
255 -|(((
256 -ERXRest.routeCase
257 -)))|(((
258 -ERXRest.routeCase
259 -
260 -)))
261 -|(((
262 -ERXRest.lowercaseEntityNames
263 -)))|(((
264 -ERXRest.lowercaseEntityNames
265 -)))
240 +| **Properties**
241 +| ERXRest.missingControllerName | (default "ERXMissingRouteController")
242 +\\          
243 +| ERXRest.parseUnknownExtensions | ERXRest.parseUnknownExtensions
244 +\\          
245 +| ERXRest.pluralEntityNames | ERXRest.pluralEntityNames
246 +\\          
247 +| ERXRest.routeCase | ERXRest.routeCase
248 +\\          
249 +| ERXRest.lowercaseEntityNames | ERXRest.lowercaseEntityNames
266 266  
267 267  ERXMissingRouteController is the controller that is used when no route can be found. It's "missing" action is loaded.
268 268  
269 -|(((
270 -**Properties**
271 -)))
272 -|(((
273 -ERXRest.strictMode
274 -)))|(((
275 -ERXRest.strictMode
276 -
277 -)))
278 -
253 +| **Properties**
254 +| ERXRest.strictMode | ERXRest.strictMode
255 +\\          |
279 279  ERXRouteController