{ "swagger": "2.0", "info": { "version": "1.0.0", "title": "Lti REST API", "description": "#### The taoLti REST API\nCurrently this API only allows LTI user lookup. See http://www.imsglobal.org/activity/learning-tools-interoperability for more informations about the LTI standard\n" }, "schemes": [ "https", "http" ], "produces": [ "application/json" ], "basePath": "/", "tags": [ { "name": "user", "description": "Operations about users" } ], "paths": { "/taoLti/RestService/getUserId": { "get": { "description": "Allows the caller to lookup the TAO user identifier (in the form of a URI) for a specified LTI consumer user id. As multiple tool consumer could use the same user id, the tool consumer key is required as well.\n\nAvailable since Tao 3.1.\n", "tags": [ "user" ], "responses": { "200": { "description": "Request was correctly handled, there is an associated user uri.", "schema": { "$ref": "#/definitions/response" }, "examples": { "application/json": { "success": true, "data": { "id": "http://tao.local/mytao.rdf#xxxxxxxxxxxxx" }, "version": "3.1.0" } } }, "400": { "description": "Bad request Error on request sent to API, occurs in case of missing parameter(s)", "examples": { "application/json": { "success": false, "errorCode": 0, "errorMsg": "At least one mandatory parameter was required but found missing in your request", "version": "3.1.0" } } }, "401": { "description": "Unauthorized Supplied credentials are not valid" }, "404": { "description": "Request was correctly handled, but there are no result for the given consumer key or there are no result for the given user id", "examples": { "consumer not found": { "success": false, "errorCode": 0, "errorMsg": "No Credentials for consumer key xxxxx", "version": "3.1.0" }, "user not found": { "success": false, "errorCode": 0, "errorMsg": "No data found for the given id", "version": "3.1.0" } } }, "500": { "description": "Internal error (should not occur)" } }, "parameters": [ { "name": "user_id", "in": "query", "description": "LTI user id", "type": "string", "required": true }, { "name": "oauth_consumer_key", "in": "query", "description": "LTI consumer key", "type": "string", "required": true } ], "security": [ { "basic_auth": [] } ] } }, "/taoLti/RestService/index": { "post": { "description": "Create a consumer with given parameters", "consumes": ["application/x-www-form-urlencoded"], "tags": [ "consumer" ], "parameters": [ { "name": "label", "in": "formData", "description": "Label for the new consumer", "required": true, "type": "string" },{ "name": "oauth-key", "in": "formData", "description": "OAuth consumer key", "required": false, "type": "string" },{ "name": "oauth-secret", "in": "formData", "description": "Oauth consumer secret", "required": false, "type": "string" }, { "name": "oauth-callback-url", "in": "formData", "description": "OAuth consumer callback URL", "required": false, "type": "string" } ], "responses": { "200": { "description": "Successful response", "schema": { "title": "response", "format": "json", "type": "object", "required": [ "success", "data", "version" ], "properties": { "success": { "type": "boolean", "description": "false on failure, true on success" }, "version": { "type": "string", "description": "tao version" }, "data": { "$ref": "#/definitions/data" }, "errorCode": { "type": "string", "description": "error code. it appear if success value is false" }, "errorMsg": { "type": "string", "description": "error description. it appear if success value is false" } } }, "examples": { "application/json": { "success": true, "data": { "uri": [ "http://tao.local/mytao.rdf#xxxxxxxxxxxxx" ] }, "version": "3.1.0" } } }, "400": { "description": "Bad request if you send invalid parameters. Test uri is mandatory.", "examples": { "application/json": { "success": false, "errorCode": 0, "errorMsg": "At least one mandatory parameter was required but found missing in your request", "version": "3.1.0" } }, "schema": { "$ref": "#/definitions/errorModel" } }, "401": { "description": "Unauthorized", "examples": { "application/json": { "success": false, "errorCode": 0, "errorMsg": "You don't have permission to access this resource.", "version": "3.1.0" } }, "schema": { "$ref": "#/definitions/errorModel" } }, "500": { "description": "Internal error, if delivery class label is found multiple times.", "examples": { "application/json": { "success": false, "errorCode": 0, "errorMsg": "Exception error description", "version": "3.1.0" } }, "schema": { "$ref": "#/definitions/errorModel" } } } }, "delete": { "description": "Delete given consumer by URI", "tags": [ "consumer" ], "parameters": [ { "name": "uri", "in": "query", "description": "A valid URI", "required": true, "type": "string" } ], "responses": { "200": { "description": "Successful response", "schema": { "title": "response", "format": "json", "type": "object", "required": [ "success", "version" ], "properties": { "success": { "type": "boolean", "description": "false on failure, true on success" }, "version": { "type": "string", "description": "tao version" }, "errorCode": { "type": "string", "description": "error code. it appear if success value is false" }, "errorMsg": { "type": "string", "description": "error description. it appear if success value is false" } } }, "examples": { "application/json": { "success": true, "version": "3.1.0" } } }, "400": { "description": "Bad request if you send invalid parameters.", "examples": { "application/json": { "success": false, "errorCode": 0, "errorMsg": "At least one mandatory parameter was required but found missing in your request", "version": "3.1.0" } }, "schema": { "$ref": "#/definitions/errorModel" } }, "401": { "description": "Unauthorized", "examples": { "application/json": { "success": false, "errorCode": 0, "errorMsg": "You are unauthorized.", "version": "3.1.0" } }, "schema": { "$ref": "#/definitions/errorModel" } }, "403": { "description": "Forbidden", "examples": { "application/json": { "success": false, "errorCode": 0, "errorMsg": "You don't have permission to access this resource.", "version": "3.1.0" } }, "schema": { "$ref": "#/definitions/errorModel" } }, "404": { "description": "Not found", "examples": { "application/json": { "success": false, "errorCode": 0, "errorMsg": "Consumer with given URI has not been found.", "version": "3.1.0" } }, "schema": { "$ref": "#/definitions/errorModel" } }, "500": { "description": "Internal error.", "examples": { "application/json": { "success": false, "errorCode": 0, "errorMsg": "Exception error description", "version": "3.1.0" } }, "schema": { "$ref": "#/definitions/errorModel" } } } } }, "/taoLti/Security/jwks": { "get": { "description": "Display the public JWKS used on LTI 1.3 communication", "tags": [ "security" ], "responses": { "200": { "description": "Display JWKS.", "schema": { "$ref": "#/definitions/jwks" } }, "500": { "description": "Internal error (should not occur)" } } } }, "/taoLti/KeyChainGenerator/generate": { "post": { "description": "Generate the key chain used on LTI 1.3 communication", "tags": [ "security", "KeyChain" ], "responses": { "200": { "description": "Acknowledge key chain generation has been successful" }, "404": { "description": "Not found (Http verb not implemented)" }, "500": { "description": "Internal error (should not occur)" } } } } }, "externalDocs": { "description": "taoLti on Github", "url": "https://github.com/oat-sa/extension-tao-lti" }, "securityDefinitions": { "basic_auth": { "type": "basic" } }, "definitions": { "response": { "type": "object", "required": [ "success", "version", "data" ], "properties": { "success": { "type": "boolean" }, "data": { "$ref": "#/definitions/payload" }, "version": { "type": "string" } } }, "payload": { "description": "the actual payload", "type": "object", "required": [ "id" ], "properties": { "id": { "type": "string" } } }, "errorModel": { "type": "object", "description": "contain error", "required": [ "success", "version", "errorCode", "errorMsg" ], "properties": { "success": { "type": "boolean", "description": "false on failure", "default": false }, "version": { "type": "string", "description": "tao version" }, "errorCode": { "type": "integer", "description": "error code" }, "errorMsg": { "type": "string", "description": "error description" } } }, "data": { "type": "object", "description": "Generated delivery URI , it appear if success value is true", "properties": { "delivery": { "type": "array", "items": { "type": "string" } } } }, "jwks": { "type": "object", "properties": { "keys": { "type": "array", "items": { "$ref": "#/definitions/jwk" } } } }, "jwk": { "type": "object", "properties": { "kty": { "type": "string" }, "e": { "type": "string" }, "n": { "type": "string" }, "kid": { "type": "string" }, "alg": { "type": "string" }, "use": { "type": "string" } } } } }