Check out http://neba.io/ it should do what you need with Spring instead of Jersey.
hope this helps --mike On Fri, Jan 27, 2017 at 3:27 PM, lancedolan <lance.do...@gmail.com> wrote: > Hi friends, > > I've tried routing questions through stackoverflow to cut down my mails to > this list. I'm losing lots of time on this one, though, and am stuck. > > I need to create APIs which don't represent Sling Resources. Example: > /services/images/123123123 > that image will exist somewhere else. > > Bertrand suggests creating a ResourceProvider, as in the example here [1]. > However, that uses the spi package which is not in version 2.9.0 of > org.apache.sling.api, and thus, not available to me in Sling 8. > > I did find a ResourceProvider interface to implement though, and created > this code: > > /** > * Created by lancedolan on 1/27/17. > */ > @Component > @Service(value=ResourceProvider.class) > @Properties({ > @Property(name = ResourceProvider.ROOTS, value = "things"), > @Property(name = ResourceProvider.OWNS_ROOTS, value = "true") > }) > public class ImageResourceProvider implements ResourceProvider { > > /** If this provider required a context this would be more elaborate, > * but for this simple example we don't need one. > */ > public static class DoesNotNeedAContext { > }; > > @Override > public Resource getResource(ResourceResolver resourceResolver, String > path) { > Resource returnResource = new SyntheticResource(resourceResolver, > path, "edlio/microservice/image"); > returnResource.getValueMap().put("myProp" , "myValue"); > return returnResource; > } > > @Override > public Resource getResource(ResourceResolver resourceResolver, > HttpServletRequest httpServletRequest, String path) { > return getResource(resourceResolver , path); > } > > @Override > public Iterator<Resource> listChildren(Resource resource) { > return null; > } > } > > > The result is that I get a 403 response. How do I control the authentication > for resources that don't actually exist? The fact that I'm not getting 404 > means that my ResourceProvider is at least registering successfully. > > Finally, I'd much prefer to use Jersey if possible... Anybody have success > getting Jersey to work in Sling 8? I dumped a bunch of time into it and gave > up after class not found errors for classes that should be found [2]. > > The ultimate goal is just to provide a restful API in Sling 8 and the > static-path-declaration of SlingSafeMethodsServlet just doesn't cut it. > > Thanks a million guys... > > > > [1] > https://github.com/apache/sling/blob/trunk/launchpad/test-services/src/main/java/org/apache/sling/launchpad/testservices/resourceprovider/PlanetsResourceProvider.java > > [2] http://stackoverflow.com/questions/41901337/how-to-use-jersey-in-sling > > > > > > -- > View this message in context: > http://apache-sling.73963.n3.nabble.com/How-to-create-Rest-APIs-for-non-JCR-data-in-Sling-8-tp4069947.html > Sent from the Sling - Users mailing list archive at Nabble.com.