Changes for page ERRest In Depth
Last modified by Pascal Robert on 2012/06/10 16:01
From version 32.1
edited by Pascal Robert
on 2012/06/10 12:21
on 2012/06/10 12:21
Change comment:
There is no comment for this version
To version 35.1
edited by Pascal Robert
on 2012/03/11 21:01
on 2012/03/11 21:01
Change comment:
There is no comment for this version
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -1,118 +21,5 @@ 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 18 - 19 -ERXRestUtils 20 - 21 21 request > route 22 22 23 -{{code}} 24 - 25 - /** 26 - * A NameFormat that behaves like Rails -- plural entities, plural routes, lowercase underscore names 27 - * (names_like_this). 28 - */ 29 - public static NameFormat RAILS = new NameFormat(true, true, NameFormat.Case.LowercaseUnderscore); 30 - 31 - /** 32 - * A NameFormat that behaves like WO -- singular entities, singular routes, camel names (NamesLikeThis). 33 - */ 34 - public static NameFormat WO = new NameFormat(false, false, NameFormat.Case.CamelCase); 35 - 36 - /** 37 - * A NameFormat that behaves like WO -- singular entities, singular routes, lowercase camel names (namesLikeThis). 38 - */ 39 - public static NameFormat WO_LOWER = new NameFormat(false, false, NameFormat.Case.LowerCamelCase); 40 - 41 -{{/code}} 42 - 43 -* ERXRestContext 44 -** contains the editing context and an userInfo dictionnary 45 -** will be populated with er.rest.dateFormat, er.rest.timestampFormatter and er.rest.timestampFormat (read only for non-HTML responses) 46 -*** want to change the time format for a specific controller? 47 - 48 -{{code}} 49 - 50 -protected ERXRestContext createRestContext() { 51 - ERXRestContext restContext = new ERXRestContext(editingContext()); 52 - restContext.setUserInfoForKey("yyyy-MM-dd", "er.rest.dateFormat"); 53 - restContext.setUserInfoForKey("yyyy-MM-dd", "er.rest.timestampFormat"); 54 - return restContext; 55 - } 56 - 57 -{{/code}} 58 - 59 -* 60 -** you just need to override createRestContext() in your controller if you want to add other stuff to the context (a user, etc.) 61 -* Properties 62 -** ERXRest.idKey (ERXRestFormatDelegate) 63 -*** (default "id") Override this property if you want to use a different key for the 'id' attribute** ERXRest.typeKey** 64 -** ERXRest.nilKey (ERXRestFormatDelegate) 65 -** ERXRest.writeNilKey (ERXRestFormatDelegate) 66 -** ERXRest.pluralEntityNames (ERXRestFormatDelegate) 67 -** ERXRest.writeTypeKey (ERXRestFormatDelegate) 68 -** ERXRest.suppressTypeAttributesForSimpleTypes (ERXXmlRestWriter) 69 -*** (default "false") If set to true, primitive types, like type = "datetime", won't be added to the output 70 -** ERXRest.strictMode 71 -*** In ERXMissingRouteController: (default "true") If set to true, status code in the response will be 405 Not Allowed, if set to false, status code will be 404 Not Found 72 -*** In ERXRouteController: (default "true") If set to true, status code in the response will be 405 Not Allowed, if set to false, status code will be 404 Not Found 73 -*** ERXRouteResults: (default "true") If set to true, creating a ressource will return status code 201 Created, if set to false, will return 200 OK 74 -** ERXRest.pluralEntityNames (ERXRouteRequestHandler) 75 -** ERXRest.routeCase (ERXRouteRequestHandler) 76 -** ERXRest.lowercaseEntityNames (ERXRouteRequestHandler) 77 -** ERXRest.parseUnknownExtensions (ERXRouteRequestHandler) 78 -*** (default "true") If set to "false", will return a 404 status code if the format doesn't exist 79 -** ERXRest.missingControllerName (ERXRouteRequestHandler) 80 -*** (default "ERXMissingRouteController") Allow you to specify which controller to use when a route doesn't exist 81 -** er.rest.rfcDateFormat 82 -** er.rest.dateFormat 83 -** er.rest.dateFormat.primary 84 -** er.rest.dateFormat.secondary 85 -** er.rest.dateFormatter 86 -** er.rest.timestampFormat 87 -** er.rest.timestampFormat.primary 88 -** er.rest.timestampFormat.secondary 89 -** er.rest.timestampFormatter 90 -** er.rest.rfcDateFormat 91 -** er.rest.jodaTime 92 -** ERXRest.transactionsEnabled (default 'false') ERXRestTransactionRequestAdaptor 93 -** ERXRest.maxEventsPerTransaction (default '50') ERXRestTransactionRequestAdaptor 94 -** ERXRest.accessControlAllowRequestHeaders (ERXRouteController) 95 -** ERXRest.accessControlAllowRequestMethods (ERXRouteController) 96 -** ERXRest.defaultFormat (ERXRouteController) 97 -*** (default "xml") Allow you to set the default format for all of your REST controllers 98 -** ERXRest.allowWindowNameCrossDomainTransport (ERXRouteController) 99 -** ERXRest.accessControlMaxAge (ERXRouteController) 100 -*** (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. 101 -** ERXRest.accessControlAllowOrigin (ERXRouteController) 102 -*** Set the value to '**' to enable all origins. See [[https://developer.mozilla.org/En/HTTP_access_control#Access-Control-Allow-Origin]]** 103 -* JSON Schema 104 -** {{code}} 105 -/something?schema=true 106 - 107 -public WOActionResults indexAction() { 108 -if (isSchemaRequest()) { 109 - return schemaResponse(showFilter()); 110 -} 111 -protected boolean isSchemaRequest() { 112 - return request().stringFormValueForKey("schema") != null; 113 -} 114 -{{/code}} 115 - 116 116 Application(ERXApplication).dispatchRequest(WORequest) line: 2051 117 117 ERXRouteRequestHandler(WOActionRequestHandler).//handleRequest(WORequest) line: 221 118 118 ERXRouteRequestHandler.getRequestHandlerPathForRequest(WORequest) line: 782// ... ... @@ -144,3 +144,13 @@ 144 144 | ERXRest.strictMode | ERXRest.strictMode 145 145 \\ | 146 146 ERXRouteController 34 + 35 +Properties 36 + 37 +ERXRest.accessControlAllowRequestHeaders 38 +ERXRest.accessControlAllowRequestMethods 39 +ERXRest.defaultFormat 40 +ERXRest.strictMode 41 +ERXRest.allowWindowNameCrossDomainTransport 42 +ERXRest.accessControlMaxAge 43 +ERXRest.accessControlAllowOrigin