When you want to interact with something in OSGi using a servlet or obtain something from the incoming request, you can go for SlingHttpServletRequest. When the interaction is purely with AEM resource you can go for Resource.
As mentioned in the documentation , using SlingHttpServletRequest, you can still get the resource something along the lines of request.getResource():
@Model(adaptables=SlingHttpServletRequest.class) public interface MyModel {
@Inject @Via("resource") String getPropertyName(); }