LTI Resource Handler Endpoints

LTI Resource Handler Endpoints

How can a user access a particular resource with LTI v2.0? With Resource Handlers, we have to define a static endpoint for accessing a resource type when creating the Tool Proxy. For example, let's say my platform has a resource for assignments and that I define a Resource Handler for assignments with the "path" lti/resources/assignments. How would the user then create a link to a particular assignment?

Using my platform's style, I would probably create a link like /lti/resources/assignments/:assignmentCode, where :assignmentCode would be replaced with a unique ID for the assignment the user wants to use. This doesn't appear to be possible, though. I also cannot specify a custom parameter to be used with the Route Handler because the TC wouldn't understand what an "assignment code" is or what assignment code to use? I can't use a constant value, either, because that would lead to the same problem.

Furthermore, if I just link to a list of assignments and I'm using the Results service, a single Result object will be created, but the student could take multiple assignments. From my understanding, I cannot tell the TC to create more Result objects.

Figure 10.9 in Section 10.2 of the LTI v2.0 Implementation Guide provides an interesting start of an example of how this might be accomplished by defining a custom parameter, but it doesn't define the value to use with the custom variable. The relevant code is duplicated below:

"parameter": [
    "name": "assessment_id"

StephenVickers's picture

Re: LTI Resource Handler Endpoints

My normal expectation would be to use a custom parameter to indicate the assignment code in a specific resource link.  Such custom parameters would not be part of the message declaration in the Tool Proxy, but be added for individual resource links when they are created.  Using the Content-Item Selection Request message makes this a seamless process for the instructor as the custom parameter can be passed back to the Tool Consumer when the link is created.