application/vnd.ims.lis.v1.score+json
FormatIPR and Distribution Notices
Recipients of this document are requested to submit, with their comments, notification of any relevant patent claims or other intellectual property rights of which they may be aware that might be infringed by any implementation of the specification set forth in this document, and to provide supporting documentation.
IMS takes no
position regarding the validity or scope of any intellectual property or other
rights that might be claimed to pertain to the implementation or use of the
technology described in this document or the extent to which any license under
such rights might or might not be available; neither does it represent that it
has made any effort to identify any such rights. Information on IMS's
procedures with respect to rights in IMS specifications can be found at the IMS
Intellectual Property Rights web page: http://www.imsglobal.org/ipr/
Copyright © 2016 IMS Global Learning Consortium. All Rights Reserved.
Use of this
specification to develop products or services is governed by the license with
IMS found on the IMS website: http://www.imsglobal.org/
Permission is granted to all parties to use excerpts from this document as needed in producing requests for proposals.
The limited permissions granted above are perpetual and will not be revoked by IMS or its successors or assigns.
THIS SPECIFICATION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, ANY WARRANTY OF NONINFRINGEMENT IS EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION SHALL BE MADE ENTIRELY AT THE IMPLEMENTER'S OWN RISK, AND NEITHER THE CONSORTIUM, NOR ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER OR THIRD PARTY FOR ANY DAMAGES OF ANY NATURE WHATSOEVER, DIRECTLY OR INDIRECTLY, ARISING FROM THE USE OF THIS SPECIFICATION.
© 2016 IMS Global Learning Consortium, Inc.
All Rights Reserved.
The IMS Logo and Learning Tools Interoperability (LTI) are trademarks of the IMS Global
Learning Consortium, Inc. in the United States and/or other countries.
Score
resources.This specification defines a REST API for reading, creating, updating and deleting Score
resources. Following common conventions, the API uses a different HTTP verb for each type of operation: GET
for read, POST
for create, PUT
for update and DELETE
for delete
Implementations of this REST API may be incomplete; a given server might support only a subset of the HTTP verbs. A server that supports the complete API will expose two different kinds of endpoints: a container endpoint for receiving POST requests and item endpoints for manipulating individual instances. This specification document does not prescribe a method for discovering the endpoint URLs.
Score
resources manipulated via this REST API are represented as JSON documents in the application/vnd.ims.lis.v1.score+json
format. For detailed information about this media type, see [Score-media-type].
It is also possible to obtain a paginated list of Score
resources from a ScoreContainer
in the application/vnd.ims.lis.v1.scorecontainer+json
format. For detailed information about this media type, see [ScoreContainer-media-type].
{+context}/lineitems/{itemId}/scores
where itemId
is an identifier for a LineItem and context
is the URL
for the learning context with which that LineItem is associated.
For example, the URL for a ScoreContainer might look something like this:
https://lms.example.com/course/289376/lineitems/721508/scores
Technically, clients never GET the ScoreContainer itself. Instead, they GET a paginated list of Score resources available from the container, where each Page has its own URL. This specification does not mandate any particular URL template for Pages, but it is recommended that implementations follow the conventions suggested by the W3C Linked Data Platform specification. According to these conventions, the first page would have a URL of the form
{+context}/lineitems/{itemId}/scores?firstPageand subsequent pages would have URLs of the form
{+context}/lineitems/{itemId}/scores?p={pageNumber}where
pageNumber
is the sequential number of the page or some key that uniquely
identifies the page. For instance, these templates might yield the following URL values:
https://lms.example.com/course/289376/lineitems/721508/scores?firstPage https://lms.example.com/course/289376/lineitems/721508/scores?p=2 https://lms.example.com/course/289376/lineitems/721508/scores?p=3 https://lms.example.com/course/289376/lineitems/721508/scores?p=4
Each individual Score
must have its own URL. This specification
does not mandate any particular URL template for individual Score
resources, but
the following template is recommended:
{+context}/lineitems/{itemId}/scores/{userId}where
userId
is an identifier for the LISPerson
as provided by the Tool Consumer.
The server (either ToolConsumer or Tool) must declare in the service_offered
section of its profile RestServices for Score
and ScoreContainer
resources. The server MUST NOT declare a RestService for the various Pages
of the container.
Request Header Name | Value |
---|---|
Content-Type | application/vnd.ims.lis.v1.score+json |
Authorization | Authorization parameters dictated by the LTI web service security profile |
Table 2 describes the possible responses from the POST method.
HTTP Status | Description |
---|---|
201 Created | The request has succeeded.
The response contains a small JSON document that provides the endpoint URI for the newly created |
400 Bad Request | The request could not be understood by the server due to malformed syntax. The client SHOULD NOT repeat the request without modifications. |
401 Unauthorized | The client did not authenticate properly. |
403 Forbidden | The request was valid but the server is refusing to allow it at this time. |
500 Internal Service Error | The server encountered an unexpected condition which prevented it from fulfilling the request. |
Request Header Name | Value |
---|---|
Authorization | Authorization parameters dictated by the LTI web service security profile |
Accept | application/vnd.ims.lis.v1.score+json |
Table 4 describes the possible responses from the GET method.
HTTP Status | Description |
---|---|
200 OK | The request was successful. The response contains a JSON document in the format defined by the |
301 Moved Permanently | The URI for the requested resource has changed. In this case, the response body is empty, and the new URI is provided in the |
307 Temporary Redirect | The requested resource resides temporarily under a different URI. In this case, the response body is empty, and the temporary URI is defined by the |
401 Unauthorized | The client did not authenticate properly. |
404 Not Found | The server has not found anything matching the request URI. |
500 Internal Service Error | The server encountered an unexpected condition which prevented it from fulfilling the request. |
Parameter | Description |
---|---|
limit | Specifies the maximum number of items that should be delivered per page. This parameter is merely a hint. The server is not obligated to honor this limit and may at its own discretion choose a different value for the number of items per page. The value must be an integer greater than zero. |
Request Header Name | Value |
---|---|
Content-Type | application/vnd.ims.lis.v1.scorecontainer+json |
Authorization | Authorization parameters dictated by the LTI web service security profile |
Table 7 describes the possible responses from the GET method.
HTTP Status | Description |
---|---|
200 OK | The request was successful. The response body contains the first Page
of Score resources in the format defined by the Clients should be aware that a server may send a 303 redirect to the first Page (see below) instead of delivering this Page directly in the entity body. Likewise a server may send a 301 or 307 redirect. |
301 Moved Permanently | The URI for the requested resource has changed. In this case, the response body is empty, and the new URI is provided in the |
303 See Other | This status code signals that the ScoreContainer itself cannot be delivered in the response.
Instead, the client may receive the first page from a paginated list of Score resources at the
address specified by the Location header. |
307 Temporary Redirect | The requested resource resides temporarily under a different URI. In this case, the response body is empty, and the temporary URI is defined by the |
401 Unauthorized | The client did not authenticate properly. |
404 Not Found | The server has not found anything matching the request URI. |
500 Internal Service Error | The server encountered an unexpected condition which prevented it from fulfilling the request. |
The PUT request updates the entire Score instance.
Request Header Name | Value |
---|---|
Content-Type | application/vnd.ims.lis.v1.score+json |
Authorization | Authorization parameters dictated by the LTI web service security profile |
Table 9 describes the possible responses from the PUT method.
HTTP Status | Description |
---|---|
200 OK | The response has succeeded. The entity body of the response contains a full description of the updated Score resource. |
401 Unauthorized | The client did not authenticate properly. |
403 Forbidden | The request was valid but the server is refusing to allow it at this time. |
404 Not Found | The server has not found anything matching the request URI. |
500 Internal Service Error | The server encountered an unexpected condition which prevented it from fulfilling the request. |
Request Header Name | Value |
---|---|
Authorization | Authorization parameters dictated by the LTI web service security profile |
Table 11 describes the possible responses from the DELETE method. In all cases, the response body is empty.
HTTP Status | Description |
---|---|
200 OK | The request was successful and the resource has been deleted. |
401 Unauthorized | The client did not authenticate properly. |
403 Forbidden | The request was valid but the server is refusing to allow it at this time. |
404 Not Found | The server has not found anything matching the request URI. |
500 Internal Service Error | The server encountered an unexpected condition which prevented it from fulfilling the request. |
application/vnd.ims.lis.v1.score+json
format. IMS Candidate Final Draft. 30 March 2017.application/vnd.ims.lis.v1.scorecontainer+json
format. IMS Candidate Final Draft. 30 March 2017.Title: | A REST API for Score Resources in the application/vnd.ims.lis.v1.score+json Format |
---|---|
Editor: | Stephen Vickers (IMS Global) |
Version: | 2.0 |
Version Date: | 30 March 2017 |
Release: | Candidate Final Draft |
Status: | IMS Candidate Final Draft |
Purpose: | This document is made available for review and comment by the public community at large. |
The following list of individuals contributed to the authoring of this document:
Viktor Haag | D2L | Charles Severance | University of Michigan |
Brad Humphrey | Instructure | John Tibbetts | VitalSource |
Greg McFall | Pearson | Claude Vervoort | Cengage |
Bracken Mosbacker | Instructure | Stephen Vickers | IMS Global Learning Consortium |
Padraig O'hiceadha | Houghton Mifflin Harcourt | Jim Walkoski | D2L |