[MGNLREST-180] Handle NPE of nodeTypes Created: 16/Mar/18 Updated: 16/Apr/20 Resolved: 23/Mar/18 |
|
| Status: | Closed |
| Project: | Magnolia REST Framework |
| Component/s: | None |
| Affects Version/s: | 2.1 |
| Fix Version/s: | 2.1.1 |
| Type: | Task | Priority: | Neutral |
| Reporter: | Martin Drápela | Assignee: | Hieu Nguyen Duc |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | 0d | ||
| Time Spent: | 1d 5h | ||
| Original Estimate: | 2d | ||
| Issue Links: |
|
||||||||
| Template: |
|
||||||||
| Acceptance criteria: |
Empty
|
||||||||
| Task DoR: |
Empty
|
||||||||
| Date of First Response: | |||||||||
| Epic Link: | YAML backwards compatibility | ||||||||
| Sprint: | Saigon 139 | ||||||||
| Story Points: | 3 | ||||||||
| Description |
|
We should implement some basic validation of endpoint configurations to avoid a situation like in 1) below the first line.
1) A non-list definition of nodeTypes for ep: 1a) The erry configuration: class: info.magnolia.rest.delivery.jcr.v2.JcrDeliveryEndpointDefinition workspace: website rootPath: / nodeTypes: mgnl:page 1b) Console messages (upon saving this): 2018-03-15 16:33:24,041 INFO info.magnolia.rest.RestDispatcherServlet : Endpoint ep is registered with base path: [context]/ep 2018-03-15 16:33:24,041 INFO agnolia.config.source.yaml.YamlConfigurationSource: Registered definition from YAML file [/tours/restEndpoints/ep.yaml]: [restEndpoint] definition [ep] with reference id: [ep] from module [tours] at [ep]
curl -X GET 'http://localhost:8080/magnoliaAuthor/.rest/ep/travel/about' -u superuser:superuser
{"@name":"about","@path":"/travel/about","@id":"808ebe4c-72b2-49f1-b9f7-e7db22bce02f","@nodeType":"mgnl:page","jcr:createdBy":"admin","hideInNav":"false","mgnl:template":"travel-demo:pages/standard","mgnl:lastActivatedBy":"superuser","mgnl:lastActivated":"2018-03-15T15:17:16.842+01:00","jcr:created":"2018-03-15T15:16:42.616+01:00","mgnl:created":"2015-02-02T17:34:28.816+01:00","mgnl:createdBy":"superuser","title":"About","mgnl:lastModified":"2015-10-27T13:50:28.322+01:00","mgnl:activationStatus":"true","mgnl:lastModifiedBy":"superuser","@nodes":[]}
curl -X GET 'http://localhost:8080/magnoliaAuthor/.rest/ep/?mgnl:lastModified\[lte\]=2015-06-03' -u superuser:superuser
{"error":{"code":"unknown","message":null}}
2018-03-15 16:35:55,760 ERROR info.magnolia.rest.RestExceptionMapper : Exception thrown executing REST endpoint, returning 500 java.lang.NullPointerException: null at java.util.ArrayList.addAll(ArrayList.java:581) ~[?:1.8.0_151] at info.magnolia.rest.delivery.jcr.QueryBuilder.nodeTypes(QueryBuilder.java:116) ~[magnolia-rest-content-delivery-2.1-SNAPSHOT.jar:?] at info.magnolia.rest.delivery.jcr.v2.JcrDeliveryEndpoint$2.exec(JcrDeliveryEndpoint.java:226) ~[magnolia-rest-content-delivery-2.1-SNAPSHOT.jar:?] at info.magnolia.rest.delivery.jcr.v2.JcrDeliveryEndpoint$2.exec(JcrDeliveryEndpoint.java:219) ~[magnolia-rest-content-delivery-2.1-SNAPSHOT.jar:?] at info.magnolia.cms.security.JCRSessionOp.exec(JCRSessionOp.java:68) ~[magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.rest.delivery.jcr.v2.JcrDeliveryEndpoint.doSessionOperation(JcrDeliveryEndpoint.java:256) ~[magnolia-rest-content-delivery-2.1-SNAPSHOT.jar:?] at info.magnolia.rest.delivery.jcr.v2.JcrDeliveryEndpoint.queryNodes(JcrDeliveryEndpoint.java:219) ~[magnolia-rest-content-delivery-2.1-SNAPSHOT.jar:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_151] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_151] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_151] at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_151] at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:140) ~[resteasy-jaxrs-3.1.3.Final.jar:3.1.3.Final] at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:294) ~[resteasy-jaxrs-3.1.3.Final.jar:3.1.3.Final] at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:248) ~[resteasy-jaxrs-3.1.3.Final.jar:3.1.3.Final] at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:235) ~[resteasy-jaxrs-3.1.3.Final.jar:3.1.3.Final] at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:402) [resteasy-jaxrs-3.1.3.Final.jar:3.1.3.Final] at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:209) [resteasy-jaxrs-3.1.3.Final.jar:3.1.3.Final] at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:227) [resteasy-jaxrs-3.1.3.Final.jar:3.1.3.Final] at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56) [resteasy-jaxrs-3.1.3.Final.jar:3.1.3.Final] at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51) [resteasy-jaxrs-3.1.3.Final.jar:3.1.3.Final] at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) [servlet-api.jar:?] at info.magnolia.cms.filters.ServletDispatchingFilter.doFilter(ServletDispatchingFilter.java:148) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:65) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.virtualuri.VirtualUriFilter.doFilter(VirtualUriFilter.java:98) [magnolia-virtual-uri-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.module.cache.executor.Bypass.processCacheRequest(Bypass.java:58) [magnolia-cache-core-5.6.1.jar:?] at info.magnolia.module.cache.executor.CompositeExecutor.processCacheRequest(CompositeExecutor.java:67) [magnolia-cache-core-5.6.1.jar:?] at info.magnolia.module.cache.filter.CacheFilter.doFilter(CacheFilter.java:220) [magnolia-cache-core-5.6.1.jar:?] at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.i18n.I18nContentSupportFilter.doFilter(I18nContentSupportFilter.java:89) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.RangeSupportFilter.doFilter(RangeSupportFilter.java:77) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.security.BaseSecurityFilter.doFilter(BaseSecurityFilter.java:57) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.multisite.filters.CrossSiteSecurityFilter.doFilter(CrossSiteSecurityFilter.java:104) [magnolia-module-multisite-1.3.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.security.SecurityCallbackFilter.doFilter(SecurityCallbackFilter.java:84) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:59) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.security.LogoutFilter.doFilter(LogoutFilter.java:94) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:59) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.module.site.filters.SiteMergeFilter.doFilter(SiteMergeFilter.java:119) [magnolia-site-1.2.1-SNAPSHOT.jar:?] at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.multisite.filters.MultiSiteFilter.doFilter(MultiSiteFilter.java:120) [magnolia-module-multisite-1.3.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.MultiChannelFilter.doFilter(MultiChannelFilter.java:83) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.security.auth.login.LoginFilter.doFilter(LoginFilter.java:127) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.enterprise.registration.RegistrationFilter.doFilter(RegistrationFilter.java:64) [magnolia-module-enterprise-5.6.4-SNAPSHOT.jar:?] at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.CosMultipartRequestFilter.doFilter(CosMultipartRequestFilter.java:111) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:59) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.personalization.preview.filter.PreviewFilter.doFilter(PreviewFilter.java:92) [magnolia-personalization-preview-app-1.5.2.jar:?] at info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:59) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.personalization.trait.AbstractTraitDetectorFilter.doFilter(AbstractTraitDetectorFilter.java:80) [magnolia-personalization-integration-1.5.2.jar:?] at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.personalization.trait.AbstractTraitDetectorFilter.doFilter(AbstractTraitDetectorFilter.java:80) [magnolia-personalization-integration-1.5.2.jar:?] at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.personalization.trait.AbstractTraitDetectorFilter.doFilter(AbstractTraitDetectorFilter.java:80) [magnolia-personalization-integration-1.5.2.jar:?] at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.personalization.trait.AbstractTraitDetectorFilter.doFilter(AbstractTraitDetectorFilter.java:80) [magnolia-personalization-integration-1.5.2.jar:?] at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.ContentTypeFilter.doFilter(ContentTypeFilter.java:155) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.ContextFilter.doFilter(ContextFilter.java:128) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.CompositeFilter.doFilter(CompositeFilter.java:65) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.SafeDestroyMgnlFilterWrapper.doFilter(SafeDestroyMgnlFilterWrapper.java:107) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.MgnlFilterDispatcher.doDispatch(MgnlFilterDispatcher.java:67) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:110) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:96) [magnolia-core-5.6.3-SNAPSHOT.jar:?] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) [catalina.jar:8.5.5] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) [catalina.jar:8.5.5] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) [catalina.jar:8.5.5] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:108) [catalina.jar:8.5.5] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) [catalina.jar:8.5.5] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) [catalina.jar:8.5.5] at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620) [catalina.jar:8.5.5] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) [catalina.jar:8.5.5] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349) [catalina.jar:8.5.5] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:784) [tomcat-coyote.jar:8.5.5] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) [tomcat-coyote.jar:8.5.5] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:802) [tomcat-coyote.jar:8.5.5] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1410) [tomcat-coyote.jar:8.5.5] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-coyote.jar:8.5.5] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_151] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_151] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-util.jar:8.5.5] at java.lang.Thread.run(Thread.java:748) [?:1.8.0_151] 2 ) A correctly functioning configuration (just for comparison) 2a) The configuration: class: info.magnolia.rest.delivery.jcr.v2.JcrDeliveryEndpointDefinition workspace: website rootPath: / nodeTypes: - mgnl:page 2b) Console messages (upon saving this): 2018-03-15 16:25:07,674 INFO info.magnolia.rest.RestDispatcherServlet : Endpoint ep is registered with base path: [context]/ep 2018-03-15 16:25:07,674 INFO agnolia.config.source.yaml.YamlConfigurationSource: Registered definition from YAML file [/tours/restEndpoints/ep.yaml]: [restEndpoint] definition [ep] with reference id: [ep] from module [tours] at [ep]
curl -X GET 'http://localhost:8080/magnoliaAuthor/.rest/ep/travel/about' -u superuser:superuser
{"@name":"about","@path":"/travel/about","@id":"808ebe4c-72b2-49f1-b9f7-e7db22bce02f","@nodeType":"mgnl:page","jcr:createdBy":"admin","hideInNav":"false","mgnl:template":"travel-demo:pages/standard","mgnl:lastActivatedBy":"superuser","mgnl:lastActivated":"2018-03-15T15:17:16.842+01:00","jcr:created":"2018-03-15T15:16:42.616+01:00","mgnl:created":"2015-02-02T17:34:28.816+01:00","mgnl:createdBy":"superuser","title":"About","mgnl:lastModified":"2015-10-27T13:50:28.322+01:00","mgnl:activationStatus":"true","mgnl:lastModifiedBy":"superuser","@nodes":[]}
curl -X GET 'http://localhost:8080/magnoliaAuthor/.rest/ep/?mgnl:lastModified\[lte\]=2015-06-03' -u superuser:superuser
{"results":[{"@name":"meta","@path":"/travel/meta","@id":"7ebd74f1-c6f7-4307-9953-afd549118a56","@nodeType":"mgnl:page","jcr:createdBy":"admin","hideInNav":"true","mgnl:template":"travel-demo:pages/standard","mgnl:lastActivatedBy":"superuser","jcr:created":"2018-03-15T15:16:42.722+01:00","mgnl:lastActivated":"2018-03-15T15:17:16.842+01:00","mgnl:created":"2015-02-02T20:58:23.939+01:00","mgnl:createdBy":"superuser","title":"Container for meta pages","mgnl:lastModified":"2015-06-03T20:37:49.283+02:00","mgnl:activationStatus":"true","mgnl:lastModifiedBy":"superuser","@nodes":[]}]}
|
| Comments |
| Comment by Mikaël Geljić [ 16/Mar/18 ] |
|
| Comment by Hieu Nguyen Duc [ 19/Mar/18 ] |
|
| Comment by Mikaël Geljić [ 20/Mar/18 ] |
|
Hmmm, I generally agree with bad-request when it is indeed the user/consumer's fault (e.g. bad parameter format). Here the consumer is not doing anything wrong, and he cannot necessarily fix it. When the problem is on the developer/provider's side, he/she is responsible for shipping an endpoint-definition without problems. |