|
[ https://issues.apache.org/jira/browse/OFBIZ-11007?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17004268#comment-17004268 ] Nicolas Malin commented on OFBIZ-11007: --------------------------------------- Hello [~mthl] , I reviewed the patch, resync with trunk, correct issues raise by Jacques and after an uncomfortable situation with the path naming I tried an other naming that I find it more intuitive: {code:java} entity/list -> entitymaint entity/{entityName} -> FindGeneric entity/{entityName}/{pkValues: .*} -> ViewGeneric entity/edit/{entityName} -> edit form entity/edit/{entityName}/{pkValues: .*} -> edit form entity/relations/{entityName} -> ViewRelation {code} This introduce a conflict for the resolution due to the parsing of request map entries didn't realize on the entry request-map ordered definition in controller.xml (so if you call *entity/list*, it's *entity/\{entityName}* that would be match), and generate list of reserved word that dynamic element can't be use (entity would be never named *list*, *edit* or *relations*) For the first, I change in function RequestHandler.resolveTemplateURI() the resolution order : * check first by raw: entity/list match before any dynamic case * order entries by the dynamic deep. The previous example would be parsing as follow {code:java} entity/relations/{entityName} entity/edit/{entityName} entity/edit/{entityName}/{pkValues: .*} entity/{entityName} entity/{entityName}/{pkValues: .*} {code} For the second I think it's not a problem but more on developper hands The code changed on RequestHandler.resolveTemplateURI() it's just to experiment and exchange if my idea have some interesting element or smells like death :) All has been put on [^OFBIZ-11007_refactor-entitymaint.patch] > REST: adding segmented URI support > ---------------------------------- > > Key: OFBIZ-11007 > URL: https://issues.apache.org/jira/browse/OFBIZ-11007 > Project: OFBiz > Issue Type: New Feature > Components: framework > Affects Versions: Trunk > Environment: > Reporter: Artemiy Rozovyk > Assignee: Nicolas Malin > Priority: Minor > Labels: REST, URI > Fix For: Upcoming Branch > > Attachments: OFBIZ-11007_refactor-entitymaint.patch, OFBIZ-11007_refactor-entitymaint.patch, entitymaint_example.patch, restful_URIs.patch > > > Following the discussion on making OFBiz RESTful OFBIZ-4274 i implemented the support of segmented URIs without interfering with current mechanisms of URI resolution nor with _overrideView()_ feature. > Combined with work on associating URIs and HTTP methods done by [~mthl] in OFBIZ-10438 , we are now able to provide RESTful APIs as follows: > {code:java} > <request-map uri="foo/bar" method="get"> > ... > <request-map uri="foo/bar/{baz}" method="get"> > ... > <request-map uri="foo/bar/{baz}" method="post"> > ... > {code} > After we matched a request-map having parametrized URI as in > {code:java} > uri="foo/bar/{baz}" > {code} > the value is available inside the request attributes with the corresponding key (here _"baz"_) > The *restful_URIs.patch* allows segmented URI support. > The *entitymaint_example.patch* is a modified _entitymaint_ part that serves as an example of possible application of new system. > Any questions or comments are welcomed. -- This message was sent by Atlassian Jira (v8.3.4#803005) |
| Free forum by Nabble | Edit this page |
