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
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
on 2012/06/10 16:01
Change comment:
There is no comment for this version
Summary
-
Page properties (2 modified, 0 added, 0 removed)
Details
- Page properties
-
- Parent
-
... ... @@ -1,1 +1,0 @@ 1 -~probert.Home.WebHome - Content
-
... ... @@ -1,20 +1,20 @@ 1 1 General architecture 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 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 -> route131 +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.typeKey173 +*** (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 - _handleRequest(WORequest) line: 221222 - 227 +ERXRouteRequestHandler(WOActionRequestHandler).//handleRequest(WORequest) line: 221 228 +ERXRouteRequestHandler.getRequestHandlerPathForRequest(WORequest) line: 782// 223 223 224 -ERXRouteRequestHandler(WOActionRequestHandler). _handleRequest(WORequest) line: 259225 - 226 - 227 - 228 - 229 - 230 - 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