An Objective is a set of Knowledge Node which all have a threshold of comprehension. An Objective can be reached when, for each its Knowledge Nodes, the student’s mastery is above the threshold.\\ As the name suggests, the objective only includes the concepts you want the learner to know: we take in charge to analyze the gap between his/her current knolwedge and the knowledge required to understand the concepts included in the objective. To do this, we use the knolwedge structure among other things.\\ ===Object resources=== ^ Property ^ Type ^ Description ^ | id | Integer | identifier for the database of Domoscio's API | | uid | String | The ID of this knowledge node in your Database. Useful if you cannot store the ID returned by the API | | name | String | Custom data | | objects | Json | Set of Knowledge Nodes, and/or Tags to be mastered | | target_only | Boolean | This parameter can be used to restrict the objective: if true, the reviews and the instruction will be kept to the objects declared in the objective | | created_at | DateTime | Date of creation of the object | | updated_at | DateTime | Last time the object has been modified | ===Create (POST)=== ^ Method | POST | ^ URL | /objectives | ==Parameters (*Requiered parameters)== ^ Property ^ Type ^ Description ^ | name | String | Custom data | | uid* | String | The ID of this knowledge node in your Database. Useful if you cannot store the ID returned by the API | | objects* | Json | Set of Knowledge Nodes, and/or Tags to be mastered | | target_only | Boolean | This parameter can be used to restrict the objective: if true, the reviews and the instruction will be kept to the objects declared in the objective. Otherwise we will use our knowledge to extend the objective. | ==Send the request (JSON input example)== { "name": "learn_the_world", "objects": {"knowledge_nodes": [2715, 2716, 2716], "tags": [1234]}, "target_only": true, "uid": "Obj1" } ==Get the response (JSON output example)== { "id": 319, "name": "learn_the_world", "uid": "Obj1", "objects": { "knowledge_nodes": [ 2715, 2716, 2716 ], "tags": [ 1234 ] }, "created_at": "2017-11-27T16:44:45.409Z", "updated_at": "2017-11-27T16:44:45.409Z", "target_only": true } ===Fetch (GET)=== ^ Method | GET| ^ URL | /objectives/{objective_id} | If no objective_id is provided it will fetch all the Objectives for your instance. ==Get the response (JSON output example)== **With ID provided**\\ { "id": 319, "name": "learn_the_world", "uid": "Obj1" "objects": { "knowledge_nodes": [ 2715, 2716, 2716 ], "tags": [ 1234 ] }, "created_at": "2017-11-27T16:44:45.409Z", "updated_at": "2017-11-27T16:44:45.409Z", "target_only": true } **Without ID provided**\\ [ { "id": 319, "name": "learn_the_world", "uid": "Obj1" "objects": { "knowledge_nodes": [ 2715, 2716, 2716 ], "tags": [ 1234 ] }, "created_at": "2017-11-27T16:44:45.409Z", "updated_at": "2017-11-27T16:44:45.409Z", "target_only": true } ] ===EDIT (PUT)=== ^ Method | PUT | ^ URL | /objectives/{objective_id} | ==Editable parameters== ^ Property ^ Type ^ Description/expected values | | name | String | Custom data | | objects* | Json | Set of Knowledge Nodes, and/or Tags to be mastered | ==Send the request (JSON input example)== { "name": "learn_everything" } ==Get the response (JSON output example)== { "id": 319, "name": "learn_everything", "uid": "Obj1" "objects": { "knowledge_nodes": [ 2715, 2716, 2716 ], "tags": [ 1234 ] }, "created_at": "2017-11-27T16:44:45.409Z", "updated_at": "2017-11-27T16:49:15.834Z", "target_only": true }