IMS Public Draft
IMS Public Draft

A REST API for ToolProxy Resources
in the application/vnd.ims.lti.v2.ToolProxy+json Format

Version 2.0 Public Draft
Date Issued: 9 October 2012
Latest version: http://www.imsglobal.org/lti

Abstract

This specification defines a REST API for creating, reading, updating and deleting ToolProxy resources.

Table of Contents

1. Introduction

This specification defines a REST API for creating, reading, updating and deleting ToolProxy resources. Following common conventions, the API uses a different HTTP verb for each type of operation: POST for create, GET for read, 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 collection 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.

2. ToolProxy Representations

ToolProxy resources manipulated via this REST API are represented as JSON documents in the application/vnd.ims.lti.v2.ToolProxy+json format. For detailed information about this media type, see [ToolProxy-media-type].

3. Service Methods

4. POST

To create a new ToolProxy instance within the server, a client submits an HTTP POST request to the server's ToolProxy collection endpoint in accordance with the following rules:

 

Request Header NameValue
Content-Typeapplication/vnd.ims.lti.v2.ToolProxy+json
AuthorizationAuthorization parameters dictated by the OAuth Body Hash Protocol
Table 1.  Required HTTP Headers for POST Request

 

Table 2 describes the possible responses from the POST method.

HTTP Status Description
200 OK The request has succeeded.

The reponse will contain an empty body.

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.
500 Internal Service Error The server encountered an unexpected condition which prevented it from fulfilling the request.
Table 2.  Possible responses from a POST method

5. GET

To get a representation of a particular ToolProxy instance, the client submits an HTTP GET request to the resource's REST endpoint, in accordance with the following rules:

 

Request Header NameValue
AuthorizationAuthorization parameters dictated by the OAuth Body Hash Protocol
Table 3.  Required HTTP Headers for GET Request

 

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 application/vnd.ims.lti.v2.ToolProxy+json media type.

401 Unauthorized The client did not authenticate properly.
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 Location header field. The client should GET the resource from the new location, and furthermore, it should send all future requests to the new location as well.

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 Location header field. The client should GET the resource at the temporary URI, but future requests should continue to be sent to the original URI.

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.
Table 4.  Possible responses from a GET method

6. PUT

To update a particular ToolProxy instance, the client submits an HTTP PUT request to the resource's REST endpoint in accordance with the following rules:

 

Request Header NameValue
Content-Typeapplication/vnd.ims.lti.v2.ToolProxy+json
AUTHORIZATIONAuthorization parameters dictated by the OAuth Body Hash Protocol
Table 5.  Required HTTP Headers for PUT Request

 

Table 6 describes the possible responses from the PUT method. In all cases, the response body is empty.

HTTP Status Description
200 OK The request was successful.
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.
Table 6.  Possible responses from a PUT method

7. DELETE

To delete a particular ToolProxy instance, the client submits an HTTP DELETE request to the resource's REST endpoint in accordance with the following rules:

 

Request Header NameValue
AuthorizationAuthorization parameters dictated by the OAuth Body Hash Protocol
Table 7.  Required HTTP Headers for DELETE Request

 

Table 8 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.
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.
Table 8.  Possible responses from a DELETE method

1. References

[ToolProxy-media-type]
Stephen Vickers. ToolProxy JSON Binding in the application/vnd.ims.lti.v2.ToolProxy.id+json format. IMS Public Draft. 1 November 2012.

About this Document

Title: A REST API for ToolProxy Resources in the application/vnd.ims.lti.v2.ToolProxy+json Format
Co-chairs: Greg McFall (Pearson), Lance Neumann (Blackboard)
Editor:Stephen Vickers (IMS Global)
Version: v1.0
Version Date: 9 October 2012
Release: v2.0
Status: IMS Public Draft
Purpose: This document is made available for review and comment by the public community at large.
Document Location: Join the discussion and post comments on the LTI Public Forum: http://www.imsglobal.org/community/forum/categories.cfm?catid=44

List of Contributors

The following list of individuals contributed to the authoring of this document:

Craig DunkDesire2learnColin SmytheIMS Global
Greg McFallPearsonMatt StoeltingCengage
Mark McKellIMS GlobalJohn TibbettsVitalSource
Lance NeumannBlackboardStephen VickersIMS Global
Charles SeveranceIMS Global

IMS Global Learning Consortium, Inc. (“IMS Global”) is publishing the information contained in this (“Specification”) for purposes of scientific, experimental, and scholarly collaboration only.

IMS Global makes no warranty or representation regarding the accuracy or completeness of the Specification. This material is provided on an “As Is” and “As Available” basis.

The Specification is at all times subject to change and revision without notice.

It is your sole responsibility to evaluate the usefulness, accuracy, and completeness of the Specification as it relates to you.

IMS Global would appreciate receiving your comments and suggestions.

Please contact IMS Global through our website at http://www.imsglobal.org

Please refer to Document Name: IMS Global Learning Tools Interoperability v2.0 Public Draft
Revision: 1 November 2012