Create educationRubric
Article
10/05/2022
17 minutes to read
4 contributors
Feedback
In this article
Namespace: microsoft.graph
Create a new educationRubric object.
Permissions
One of the following permissions is required to call this API. To learn more, including how to choose permissions, see Permissions .
Permission type
Permissions (from least to most privileged)
Delegated (work or school account)
EduAssignments.ReadWriteBasic, EduAssignments.ReadWrite
Delegated (personal Microsoft account)
Not supported.
Application
Not supported.
HTTP request
POST /education/me/rubrics
Name
Description
Authorization
Bearer {token}
Request body
In the request body, supply a JSON representation of an educationRubric object.
Response
If successful, this method returns a 201 Created
response code and a new educationRubric object in the response body.
Examples
Example 1: Post a credit rubric
Request
The following is an example of the request to post a credit rubric (a rubric with no points).
POST https://graph.microsoft.com/v1.0/education/me/rubrics
Content-type: application/json
{
"displayName":"Example Credit Rubric",
"description":{
"content":"This is an example of a credit rubric (no points)",
"contentType":"text"
},
"levels":[
{
"displayName":"Good",
"description":{
"content":"",
"contentType":"text"
}
},
{
"displayName":"Poor",
"description":{
"content":"",
"contentType":"text"
}
}
],
"qualities":[
{
"description":{
"content":"Argument",
"contentType":"text"
},
"criteria":[
{
"description":{
"content":"The essay's argument is persuasive.",
"contentType":"text"
}
},
{
"description":{
"content":"The essay's argument does not make sense.",
"contentType":"text"
}
}
]
},
{
"description":{
"content":"Spelling and Grammar",
"contentType":"text"
},
"criteria":[
{
"description":{
"content":"The essay uses proper spelling and grammar with few or no errors.",
"contentType":"text"
}
},
{
"description":{
"content":"The essay has numerous errors in spelling and/or grammar.",
"contentType":"text"
}
}
]
}
]
}
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var educationRubric = new EducationRubric
{
DisplayName = "Example Credit Rubric",
Description = new EducationItemBody
{
Content = "This is an example of a credit rubric (no points)",
ContentType = BodyType.Text
},
Levels = new List<RubricLevel>()
{
new RubricLevel
{
DisplayName = "Good",
Description = new EducationItemBody
{
Content = "",
ContentType = BodyType.Text
}
},
new RubricLevel
{
DisplayName = "Poor",
Description = new EducationItemBody
{
Content = "",
ContentType = BodyType.Text
}
}
},
Qualities = new List<RubricQuality>()
{
new RubricQuality
{
Description = new EducationItemBody
{
Content = "Argument",
ContentType = BodyType.Text
},
Criteria = new List<RubricCriterion>()
{
new RubricCriterion
{
Description = new EducationItemBody
{
Content = "The essay's argument is persuasive.",
ContentType = BodyType.Text
}
},
new RubricCriterion
{
Description = new EducationItemBody
{
Content = "The essay's argument does not make sense.",
ContentType = BodyType.Text
}
}
}
},
new RubricQuality
{
Description = new EducationItemBody
{
Content = "Spelling and Grammar",
ContentType = BodyType.Text
},
Criteria = new List<RubricCriterion>()
{
new RubricCriterion
{
Description = new EducationItemBody
{
Content = "The essay uses proper spelling and grammar with few or no errors.",
ContentType = BodyType.Text
}
},
new RubricCriterion
{
Description = new EducationItemBody
{
Content = "The essay has numerous errors in spelling and/or grammar.",
ContentType = BodyType.Text
}
}
}
}
}
};
await graphClient.Education.Me.Rubrics
.Request()
.AddAsync(educationRubric);
For details about how to add the SDK to your project and create an authProvider instance, see the SDK documentation .
const options = {
authProvider,
};
const client = Client.init(options);
const educationRubric = {
displayName: 'Example Credit Rubric',
description: {
content: 'This is an example of a credit rubric (no points)',
contentType: 'text'
},
levels: [
{
displayName: 'Good',
description: {
content: '',
contentType: 'text'
}
},
{
displayName: 'Poor',
description: {
content: '',
contentType: 'text'
}
}
],
qualities: [
{
description: {
content: 'Argument',
contentType: 'text'
},
criteria: [
{
description: {
content: 'The essay\'s argument is persuasive.',
contentType: 'text'
}
},
{
description: {
content: 'The essay\'s argument does not make sense.',
contentType: 'text'
}
}
]
},
{
description: {
content: 'Spelling and Grammar',
contentType: 'text'
},
criteria: [
{
description: {
content: 'The essay uses proper spelling and grammar with few or no errors.',
contentType: 'text'
}
},
{
description: {
content: 'The essay has numerous errors in spelling and/or grammar.',
contentType: 'text'
}
}
]
}
]
};
await client.api('/education/me/rubrics')
.post(educationRubric);
For details about how to add the SDK to your project and create an authProvider instance, see the SDK documentation .
GraphServiceClient graphClient = GraphServiceClient.builder().authenticationProvider( authProvider ).buildClient();
EducationRubric educationRubric = new EducationRubric();
educationRubric.displayName = "Example Credit Rubric";
EducationItemBody description = new EducationItemBody();
description.content = "This is an example of a credit rubric (no points)";
description.contentType = BodyType.TEXT;
educationRubric.description = description;
LinkedList<RubricLevel> levelsList = new LinkedList<RubricLevel>();
RubricLevel levels = new RubricLevel();
levels.displayName = "Good";
EducationItemBody description1 = new EducationItemBody();
description1.content = "";
description1.contentType = BodyType.TEXT;
levels.description = description1;
levelsList.add(levels);
RubricLevel levels1 = new RubricLevel();
levels1.displayName = "Poor";
EducationItemBody description2 = new EducationItemBody();
description2.content = "";
description2.contentType = BodyType.TEXT;
levels1.description = description2;
levelsList.add(levels1);
educationRubric.levels = levelsList;
LinkedList<RubricQuality> qualitiesList = new LinkedList<RubricQuality>();
RubricQuality qualities = new RubricQuality();
EducationItemBody description3 = new EducationItemBody();
description3.content = "Argument";
description3.contentType = BodyType.TEXT;
qualities.description = description3;
LinkedList<RubricCriterion> criteriaList = new LinkedList<RubricCriterion>();
RubricCriterion criteria = new RubricCriterion();
EducationItemBody description4 = new EducationItemBody();
description4.content = "The essay's argument is persuasive.";
description4.contentType = BodyType.TEXT;
criteria.description = description4;
criteriaList.add(criteria);
RubricCriterion criteria1 = new RubricCriterion();
EducationItemBody description5 = new EducationItemBody();
description5.content = "The essay's argument does not make sense.";
description5.contentType = BodyType.TEXT;
criteria1.description = description5;
criteriaList.add(criteria1);
qualities.criteria = criteriaList;
qualitiesList.add(qualities);
RubricQuality qualities1 = new RubricQuality();
EducationItemBody description6 = new EducationItemBody();
description6.content = "Spelling and Grammar";
description6.contentType = BodyType.TEXT;
qualities1.description = description6;
LinkedList<RubricCriterion> criteriaList1 = new LinkedList<RubricCriterion>();
RubricCriterion criteria2 = new RubricCriterion();
EducationItemBody description7 = new EducationItemBody();
description7.content = "The essay uses proper spelling and grammar with few or no errors.";
description7.contentType = BodyType.TEXT;
criteria2.description = description7;
criteriaList1.add(criteria2);
RubricCriterion criteria3 = new RubricCriterion();
EducationItemBody description8 = new EducationItemBody();
description8.content = "The essay has numerous errors in spelling and/or grammar.";
description8.contentType = BodyType.TEXT;
criteria3.description = description8;
criteriaList1.add(criteria3);
qualities1.criteria = criteriaList1;
qualitiesList.add(qualities1);
educationRubric.qualities = qualitiesList;
graphClient.education().me().rubrics()
.buildRequest()
.post(educationRubric);
For details about how to add the SDK to your project and create an authProvider instance, see the SDK documentation .
//THE GO SDK IS IN PREVIEW. NON-PRODUCTION USE ONLY
graphClient := msgraphsdk.NewGraphServiceClient(requestAdapter)
requestBody := graphmodels.NewEducationRubric()
displayName := "Example Credit Rubric"
requestBody.SetDisplayName(&displayName)
description := graphmodels.NewEducationItemBody()
content := "This is an example of a credit rubric (no points)"
description.SetContent(&content)
contentType := graphmodels.TEXT_BODYTYPE
description.SetContentType(&contentType)
requestBody.SetDescription(description)
rubricLevel := graphmodels.NewRubricLevel()
displayName := "Good"
rubricLevel.SetDisplayName(&displayName)
description := graphmodels.NewEducationItemBody()
content := ""
description.SetContent(&content)
contentType := graphmodels.TEXT_BODYTYPE
description.SetContentType(&contentType)
rubricLevel.SetDescription(description)
rubricLevel1 := graphmodels.NewRubricLevel()
displayName := "Poor"
rubricLevel1.SetDisplayName(&displayName)
description := graphmodels.NewEducationItemBody()
content := ""
description.SetContent(&content)
contentType := graphmodels.TEXT_BODYTYPE
description.SetContentType(&contentType)
rubricLevel1.SetDescription(description)
levels := []graphmodels.RubricLevelable {
rubricLevel,
rubricLevel1,
}
requestBody.SetLevels(levels)
rubricQuality := graphmodels.NewRubricQuality()
description := graphmodels.NewEducationItemBody()
content := "Argument"
description.SetContent(&content)
contentType := graphmodels.TEXT_BODYTYPE
description.SetContentType(&contentType)
rubricQuality.SetDescription(description)
rubricCriterion := graphmodels.NewRubricCriterion()
description := graphmodels.NewEducationItemBody()
content := "The essay's argument is persuasive."
description.SetContent(&content)
contentType := graphmodels.TEXT_BODYTYPE
description.SetContentType(&contentType)
rubricCriterion.SetDescription(description)
rubricCriterion1 := graphmodels.NewRubricCriterion()
description := graphmodels.NewEducationItemBody()
content := "The essay's argument does not make sense."
description.SetContent(&content)
contentType := graphmodels.TEXT_BODYTYPE
description.SetContentType(&contentType)
rubricCriterion1.SetDescription(description)
criteria := []graphmodels.RubricCriterionable {
rubricCriterion,
rubricCriterion1,
}
rubricQuality.SetCriteria(criteria)
rubricQuality1 := graphmodels.NewRubricQuality()
description := graphmodels.NewEducationItemBody()
content := "Spelling and Grammar"
description.SetContent(&content)
contentType := graphmodels.TEXT_BODYTYPE
description.SetContentType(&contentType)
rubricQuality1.SetDescription(description)
rubricCriterion := graphmodels.NewRubricCriterion()
description := graphmodels.NewEducationItemBody()
content := "The essay uses proper spelling and grammar with few or no errors."
description.SetContent(&content)
contentType := graphmodels.TEXT_BODYTYPE
description.SetContentType(&contentType)
rubricCriterion.SetDescription(description)
rubricCriterion1 := graphmodels.NewRubricCriterion()
description := graphmodels.NewEducationItemBody()
content := "The essay has numerous errors in spelling and/or grammar."
description.SetContent(&content)
contentType := graphmodels.TEXT_BODYTYPE
description.SetContentType(&contentType)
rubricCriterion1.SetDescription(description)
criteria := []graphmodels.RubricCriterionable {
rubricCriterion,
rubricCriterion1,
}
rubricQuality1.SetCriteria(criteria)
qualities := []graphmodels.RubricQualityable {
rubricQuality,
rubricQuality1,
}
requestBody.SetQualities(qualities)
result, err := graphClient.Education().Me().Rubrics().Post(context.Background(), requestBody, nil)
For details about how to add the SDK to your project and create an authProvider instance, see the SDK documentation .
Import-Module Microsoft.Graph.Education
$params = @{
DisplayName = "Example Credit Rubric"
Description = @{
Content = "This is an example of a credit rubric (no points)"
ContentType = "text"
}
Levels = @(
@{
DisplayName = "Good"
Description = @{
Content = ""
ContentType = "text"
}
}
@{
DisplayName = "Poor"
Description = @{
Content = ""
ContentType = "text"
}
}
)
Qualities = @(
@{
Description = @{
Content = "Argument"
ContentType = "text"
}
Criteria = @(
@{
Description = @{
Content = "The essay's argument is persuasive."
ContentType = "text"
}
}
@{
Description = @{
Content = "The essay's argument does not make sense."
ContentType = "text"
}
}
)
}
@{
Description = @{
Content = "Spelling and Grammar"
ContentType = "text"
}
Criteria = @(
@{
Description = @{
Content = "The essay uses proper spelling and grammar with few or no errors."
ContentType = "text"
}
}
@{
Description = @{
Content = "The essay has numerous errors in spelling and/or grammar."
ContentType = "text"
}
}
)
}
)
}
New-MgEducationMeRubric -BodyParameter $params
For details about how to add the SDK to your project and create an authProvider instance, see the SDK documentation .
<?php
// THIS SNIPPET IS A PREVIEW FOR THE KIOTA BASED SDK. NON-PRODUCTION USE ONLY
$graphServiceClient = new GraphServiceClient($requestAdapter);
$requestBody = new EducationRubric();
$requestBody->setDisplayName('Example Credit Rubric');
$description = new EducationItemBody();
$description->setContent('This is an example of a credit rubric (no points)');
$description->setContentType(new BodyType('text'));
$requestBody->setDescription($description);
$levelsRubricLevel1 = new RubricLevel();
$levelsRubricLevel1->setDisplayName('Good');
$levelsRubricLevel1Description = new EducationItemBody();
$levelsRubricLevel1Description->setContent('');
$levelsRubricLevel1Description->setContentType(new BodyType('text'));
$levelsRubricLevel1->setDescription($levelsRubricLevel1Description);
$levelsArray []= $levelsRubricLevel1;
$levelsRubricLevel2 = new RubricLevel();
$levelsRubricLevel2->setDisplayName('Poor');
$levelsRubricLevel2Description = new EducationItemBody();
$levelsRubricLevel2Description->setContent('');
$levelsRubricLevel2Description->setContentType(new BodyType('text'));
$levelsRubricLevel2->setDescription($levelsRubricLevel2Description);
$levelsArray []= $levelsRubricLevel2;
$requestBody->setLevels($levelsArray);
$qualitiesRubricQuality1 = new RubricQuality();
$qualitiesRubricQuality1Description = new EducationItemBody();
$qualitiesRubricQuality1Description->setContent('Argument');
$qualitiesRubricQuality1Description->setContentType(new BodyType('text'));
$qualitiesRubricQuality1->setDescription($qualitiesRubricQuality1Description);
$criteriaRubricCriterion1 = new RubricCriterion();
$criteriaRubricCriterion1Description = new EducationItemBody();
$criteriaRubricCriterion1Description->setContent('The essay\'s argument is persuasive.');
$criteriaRubricCriterion1Description->setContentType(new BodyType('text'));
$criteriaRubricCriterion1->setDescription($criteriaRubricCriterion1Description);
$criteriaArray []= $criteriaRubricCriterion1;
$criteriaRubricCriterion2 = new RubricCriterion();
$criteriaRubricCriterion2Description = new EducationItemBody();
$criteriaRubricCriterion2Description->setContent('The essay\'s argument does not make sense.');
$criteriaRubricCriterion2Description->setContentType(new BodyType('text'));
$criteriaRubricCriterion2->setDescription($criteriaRubricCriterion2Description);
$criteriaArray []= $criteriaRubricCriterion2;
$qualitiesRubricQuality1->setCriteria($criteriaArray);
$qualitiesArray []= $qualitiesRubricQuality1;
$qualitiesRubricQuality2 = new RubricQuality();
$qualitiesRubricQuality2Description = new EducationItemBody();
$qualitiesRubricQuality2Description->setContent('Spelling and Grammar');
$qualitiesRubricQuality2Description->setContentType(new BodyType('text'));
$qualitiesRubricQuality2->setDescription($qualitiesRubricQuality2Description);
$criteriaRubricCriterion1 = new RubricCriterion();
$criteriaRubricCriterion1Description = new EducationItemBody();
$criteriaRubricCriterion1Description->setContent('The essay uses proper spelling and grammar with few or no errors.');
$criteriaRubricCriterion1Description->setContentType(new BodyType('text'));
$criteriaRubricCriterion1->setDescription($criteriaRubricCriterion1Description);
$criteriaArray []= $criteriaRubricCriterion1;
$criteriaRubricCriterion2 = new RubricCriterion();
$criteriaRubricCriterion2Description = new EducationItemBody();
$criteriaRubricCriterion2Description->setContent('The essay has numerous errors in spelling and/or grammar.');
$criteriaRubricCriterion2Description->setContentType(new BodyType('text'));
$criteriaRubricCriterion2->setDescription($criteriaRubricCriterion2Description);
$criteriaArray []= $criteriaRubricCriterion2;
$qualitiesRubricQuality2->setCriteria($criteriaArray);
$qualitiesArray []= $qualitiesRubricQuality2;
$requestBody->setQualities($qualitiesArray);
$requestResult = $graphServiceClient->education()->me()->rubrics()->post($requestBody);
For details about how to add the SDK to your project and create an authProvider instance, see the SDK documentation .
Response
The following is an example of the response.
Note: The response object shown here might be shortened for readability.
HTTP/1.1 201 Created
Content-type: application/json
{
"displayName": "Example Credit Rubric",
"id": "63618139-2e8d-4f56-a762-dd734736816f",
"description": {
"content": "This is an example of a credit rubric (no points)",
"contentType": "text"
},
"qualities": [
{
"qualityId": "461e866a-4844-4a3f-9a3c-e5464a32acf1",
"description": {
"content": "Argument",
"contentType": "text"
},
"criteria": [
{
"description": {
"content": "The essay's argument is persuasive.",
"contentType": "text"
}
},
{
"description": {
"content": "The essay's argument does not make sense.",
"contentType": "text"
}
}
]
},
{
"qualityId": "ccb47c1c-1a01-4027-93d7-f14b9fe86fdd",
"description": {
"content": "Spelling and Grammar",
"contentType": "text"
},
"criteria": [
{
"description": {
"content": "The essay uses proper spelling and grammar with few or no errors.",
"contentType": "text"
}
},
{
"description": {
"content": "The essay has numerous errors in spelling and/or grammar.",
"contentType": "text"
}
}
]
}
],
"levels": [
{
"levelId": "564e68f6-984b-4574-bea7-ffae3c92633f",
"displayName": "Good",
"description": {
"content": "",
"contentType": "text"
}
},
{
"levelId": "3f082e35-46e3-4944-baea-ea6c7e36ef37",
"displayName": "Poor",
"description": {
"content": "",
"contentType": "text"
}
}
]
}
Example 2: Post a points rubric
The following is an example of the request to post a rubric with points.
POST https://graph.microsoft.com/v1.0/education/me/rubrics
Content-type: application/json
{
"displayName":"Example Points Rubric",
"description":{
"content":"This is an example of a rubric with points",
"contentType":"text"
},
"levels":[
{
"displayName":"Good",
"description":{
"content":"",
"contentType":"text"
},
"grading":{
"@odata.type":"#microsoft.graph.educationAssignmentPointsGradeType",
"maxPoints":2
}
},
{
"displayName":"Poor",
"description":{
"content":"",
"contentType":"text"
},
"grading":{
"@odata.type":"#microsoft.graph.educationAssignmentPointsGradeType",
"maxPoints":1
}
}
],
"qualities":[
{
"description":{
"content":"Argument",
"contentType":"text"
},
"criteria":[
{
"description":{
"content":"The essay's argument is persuasive.",
"contentType":"text"
}
},
{
"description":{
"content":"The essay's argument does not make sense.",
"contentType":"text"
}
}
],
"weight":50.0
},
{
"description":{
"content":"Spelling and Grammar",
"contentType":"text"
},
"criteria":[
{
"description":{
"content":"The essay uses proper spelling and grammar with few or no errors.",
"contentType":"text"
}
},
{
"description":{
"content":"The essay has numerous errors in spelling and/or grammar.",
"contentType":"text"
}
}
],
"weight":50.0
}
],
"grading":{
"@odata.type":"#microsoft.graph.educationAssignmentPointsGradeType"
}
}
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var educationRubric = new EducationRubric
{
DisplayName = "Example Points Rubric",
Description = new EducationItemBody
{
Content = "This is an example of a rubric with points",
ContentType = BodyType.Text
},
Levels = new List<RubricLevel>()
{
new RubricLevel
{
DisplayName = "Good",
Description = new EducationItemBody
{
Content = "",
ContentType = BodyType.Text
},
Grading = new EducationAssignmentPointsGradeType
{
MaxPoints = 2f
}
},
new RubricLevel
{
DisplayName = "Poor",
Description = new EducationItemBody
{
Content = "",
ContentType = BodyType.Text
},
Grading = new EducationAssignmentPointsGradeType
{
MaxPoints = 1f
}
}
},
Qualities = new List<RubricQuality>()
{
new RubricQuality
{
Description = new EducationItemBody
{
Content = "Argument",
ContentType = BodyType.Text
},
Criteria = new List<RubricCriterion>()
{
new RubricCriterion
{
Description = new EducationItemBody
{
Content = "The essay's argument is persuasive.",
ContentType = BodyType.Text
}
},
new RubricCriterion
{
Description = new EducationItemBody
{
Content = "The essay's argument does not make sense.",
ContentType = BodyType.Text
}
}
},
Weight = 50f
},
new RubricQuality
{
Description = new EducationItemBody
{
Content = "Spelling and Grammar",
ContentType = BodyType.Text
},
Criteria = new List<RubricCriterion>()
{
new RubricCriterion
{
Description = new EducationItemBody
{
Content = "The essay uses proper spelling and grammar with few or no errors.",
ContentType = BodyType.Text
}
},
new RubricCriterion
{
Description = new EducationItemBody
{
Content = "The essay has numerous errors in spelling and/or grammar.",
ContentType = BodyType.Text
}
}
},
Weight = 50f
}
},
Grading = new EducationAssignmentPointsGradeType
{
}
};
await graphClient.Education.Me.Rubrics
.Request()
.AddAsync(educationRubric);
For details about how to add the SDK to your project and create an authProvider instance, see the SDK documentation .
const options = {
authProvider,
};
const client = Client.init(options);
const educationRubric = {
displayName: 'Example Points Rubric',
description: {
content: 'This is an example of a rubric with points',
contentType: 'text'
},
levels: [
{
displayName: 'Good',
description: {
content: '',
contentType: 'text'
},
grading: {
'@odata.type':'#microsoft.graph.educationAssignmentPointsGradeType',
maxPoints: 2
}
},
{
displayName: 'Poor',
description: {
content: '',
contentType: 'text'
},
grading: {
'@odata.type':'#microsoft.graph.educationAssignmentPointsGradeType',
maxPoints: 1
}
}
],
qualities: [
{
description: {
content: 'Argument',
contentType: 'text'
},
criteria: [
{
description: {
content: 'The essay\'s argument is persuasive.',
contentType: 'text'
}
},
{
description: {
content: 'The essay\'s argument does not make sense.',
contentType: 'text'
}
}
],
weight: 50.0
},
{
description: {
content: 'Spelling and Grammar',
contentType: 'text'
},
criteria: [
{
description: {
content: 'The essay uses proper spelling and grammar with few or no errors.',
contentType: 'text'
}
},
{
description: {
content: 'The essay has numerous errors in spelling and/or grammar.',
contentType: 'text'
}
}
],
weight: 50.0
}
],
grading: {
'@odata.type':'#microsoft.graph.educationAssignmentPointsGradeType'
}
};
await client.api('/education/me/rubrics')
.post(educationRubric);
For details about how to add the SDK to your project and create an authProvider instance, see the SDK documentation .
GraphServiceClient graphClient = GraphServiceClient.builder().authenticationProvider( authProvider ).buildClient();
EducationRubric educationRubric = new EducationRubric();
educationRubric.displayName = "Example Points Rubric";
EducationItemBody description = new EducationItemBody();
description.content = "This is an example of a rubric with points";
description.contentType = BodyType.TEXT;
educationRubric.description = description;
LinkedList<RubricLevel> levelsList = new LinkedList<RubricLevel>();
RubricLevel levels = new RubricLevel();
levels.displayName = "Good";
EducationItemBody description1 = new EducationItemBody();
description1.content = "";
description1.contentType = BodyType.TEXT;
levels.description = description1;
EducationAssignmentPointsGradeType grading = new EducationAssignmentPointsGradeType();
grading.maxPoints = 2;
levels.grading = grading;
levelsList.add(levels);
RubricLevel levels1 = new RubricLevel();
levels1.displayName = "Poor";
EducationItemBody description2 = new EducationItemBody();
description2.content = "";
description2.contentType = BodyType.TEXT;
levels1.description = description2;
EducationAssignmentPointsGradeType grading1 = new EducationAssignmentPointsGradeType();
grading1.maxPoints = 1;
levels1.grading = grading1;
levelsList.add(levels1);
educationRubric.levels = levelsList;
LinkedList<RubricQuality> qualitiesList = new LinkedList<RubricQuality>();
RubricQuality qualities = new RubricQuality();
EducationItemBody description3 = new EducationItemBody();
description3.content = "Argument";
description3.contentType = BodyType.TEXT;
qualities.description = description3;
LinkedList<RubricCriterion> criteriaList = new LinkedList<RubricCriterion>();
RubricCriterion criteria = new RubricCriterion();
EducationItemBody description4 = new EducationItemBody();
description4.content = "The essay's argument is persuasive.";
description4.contentType = BodyType.TEXT;
criteria.description = description4;
criteriaList.add(criteria);
RubricCriterion criteria1 = new RubricCriterion();
EducationItemBody description5 = new EducationItemBody();
description5.content = "The essay's argument does not make sense.";
description5.contentType = BodyType.TEXT;
criteria1.description = description5;
criteriaList.add(criteria1);
qualities.criteria = criteriaList;
qualities.weight = 50.0;
qualitiesList.add(qualities);
RubricQuality qualities1 = new RubricQuality();
EducationItemBody description6 = new EducationItemBody();
description6.content = "Spelling and Grammar";
description6.contentType = BodyType.TEXT;
qualities1.description = description6;
LinkedList<RubricCriterion> criteriaList1 = new LinkedList<RubricCriterion>();
RubricCriterion criteria2 = new RubricCriterion();
EducationItemBody description7 = new EducationItemBody();
description7.content = "The essay uses proper spelling and grammar with few or no errors.";
description7.contentType = BodyType.TEXT;
criteria2.description = description7;
criteriaList1.add(criteria2);
RubricCriterion criteria3 = new RubricCriterion();
EducationItemBody description8 = new EducationItemBody();
description8.content = "The essay has numerous errors in spelling and/or grammar.";
description8.contentType = BodyType.TEXT;
criteria3.description = description8;
criteriaList1.add(criteria3);
qualities1.criteria = criteriaList1;
qualities1.weight = 50.0;
qualitiesList.add(qualities1);
educationRubric.qualities = qualitiesList;
EducationAssignmentPointsGradeType grading2 = new EducationAssignmentPointsGradeType();
educationRubric.grading = grading2;
graphClient.education().me().rubrics()
.buildRequest()
.post(educationRubric);
For details about how to add the SDK to your project and create an authProvider instance, see the SDK documentation .
//THE GO SDK IS IN PREVIEW. NON-PRODUCTION USE ONLY
graphClient := msgraphsdk.NewGraphServiceClient(requestAdapter)
requestBody := graphmodels.NewEducationRubric()
displayName := "Example Points Rubric"
requestBody.SetDisplayName(&displayName)
description := graphmodels.NewEducationItemBody()
content := "This is an example of a rubric with points"
description.SetContent(&content)
contentType := graphmodels.TEXT_BODYTYPE
description.SetContentType(&contentType)
requestBody.SetDescription(description)
rubricLevel := graphmodels.NewRubricLevel()
displayName := "Good"
rubricLevel.SetDisplayName(&displayName)
description := graphmodels.NewEducationItemBody()
content := ""
description.SetContent(&content)
contentType := graphmodels.TEXT_BODYTYPE
description.SetContentType(&contentType)
rubricLevel.SetDescription(description)
grading := graphmodels.NewEducationAssignmentGradeType()
additionalData := map[string]interface{}{
"maxPoints" : int32(2) ,
}
grading.SetAdditionalData(additionalData)
rubricLevel.SetGrading(grading)
rubricLevel1 := graphmodels.NewRubricLevel()
displayName := "Poor"
rubricLevel1.SetDisplayName(&displayName)
description := graphmodels.NewEducationItemBody()
content := ""
description.SetContent(&content)
contentType := graphmodels.TEXT_BODYTYPE
description.SetContentType(&contentType)
rubricLevel1.SetDescription(description)
grading := graphmodels.NewEducationAssignmentGradeType()
additionalData := map[string]interface{}{
"maxPoints" : int32(1) ,
}
grading.SetAdditionalData(additionalData)
rubricLevel1.SetGrading(grading)
levels := []graphmodels.RubricLevelable {
rubricLevel,
rubricLevel1,
}
requestBody.SetLevels(levels)
rubricQuality := graphmodels.NewRubricQuality()
description := graphmodels.NewEducationItemBody()
content := "Argument"
description.SetContent(&content)
contentType := graphmodels.TEXT_BODYTYPE
description.SetContentType(&contentType)
rubricQuality.SetDescription(description)
rubricCriterion := graphmodels.NewRubricCriterion()
description := graphmodels.NewEducationItemBody()
content := "The essay's argument is persuasive."
description.SetContent(&content)
contentType := graphmodels.TEXT_BODYTYPE
description.SetContentType(&contentType)
rubricCriterion.SetDescription(description)
rubricCriterion1 := graphmodels.NewRubricCriterion()
description := graphmodels.NewEducationItemBody()
content := "The essay's argument does not make sense."
description.SetContent(&content)
contentType := graphmodels.TEXT_BODYTYPE
description.SetContentType(&contentType)
rubricCriterion1.SetDescription(description)
criteria := []graphmodels.RubricCriterionable {
rubricCriterion,
rubricCriterion1,
}
rubricQuality.SetCriteria(criteria)
weight := float32(50.0)
rubricQuality.SetWeight(&weight)
rubricQuality1 := graphmodels.NewRubricQuality()
description := graphmodels.NewEducationItemBody()
content := "Spelling and Grammar"
description.SetContent(&content)
contentType := graphmodels.TEXT_BODYTYPE
description.SetContentType(&contentType)
rubricQuality1.SetDescription(description)
rubricCriterion := graphmodels.NewRubricCriterion()
description := graphmodels.NewEducationItemBody()
content := "The essay uses proper spelling and grammar with few or no errors."
description.SetContent(&content)
contentType := graphmodels.TEXT_BODYTYPE
description.SetContentType(&contentType)
rubricCriterion.SetDescription(description)
rubricCriterion1 := graphmodels.NewRubricCriterion()
description := graphmodels.NewEducationItemBody()
content := "The essay has numerous errors in spelling and/or grammar."
description.SetContent(&content)
contentType := graphmodels.TEXT_BODYTYPE
description.SetContentType(&contentType)
rubricCriterion1.SetDescription(description)
criteria := []graphmodels.RubricCriterionable {
rubricCriterion,
rubricCriterion1,
}
rubricQuality1.SetCriteria(criteria)
weight := float32(50.0)
rubricQuality1.SetWeight(&weight)
qualities := []graphmodels.RubricQualityable {
rubricQuality,
rubricQuality1,
}
requestBody.SetQualities(qualities)
grading := graphmodels.NewEducationAssignmentGradeType()
requestBody.SetGrading(grading)
result, err := graphClient.Education().Me().Rubrics().Post(context.Background(), requestBody, nil)
For details about how to add the SDK to your project and create an authProvider instance, see the SDK documentation .
<?php
// THIS SNIPPET IS A PREVIEW FOR THE KIOTA BASED SDK. NON-PRODUCTION USE ONLY
$graphServiceClient = new GraphServiceClient($requestAdapter);
$requestBody = new EducationRubric();
$requestBody->setDisplayName('Example Points Rubric');
$description = new EducationItemBody();
$description->setContent('This is an example of a rubric with points');
$description->setContentType(new BodyType('text'));
$requestBody->setDescription($description);
$levelsRubricLevel1 = new RubricLevel();
$levelsRubricLevel1->setDisplayName('Good');
$levelsRubricLevel1Description = new EducationItemBody();
$levelsRubricLevel1Description->setContent('');
$levelsRubricLevel1Description->setContentType(new BodyType('text'));
$levelsRubricLevel1->setDescription($levelsRubricLevel1Description);
$levelsRubricLevel1Grading = new EducationAssignmentGradeType();
$levelsRubricLevel1Grading->set@odatatype('#microsoft.graph.educationAssignmentPointsGradeType');
$additionalData = [
'maxPoints' => 2,
];
$levelsRubricLevel1Grading->setAdditionalData($additionalData);
$levelsRubricLevel1->setGrading($levelsRubricLevel1Grading);
$levelsArray []= $levelsRubricLevel1;
$levelsRubricLevel2 = new RubricLevel();
$levelsRubricLevel2->setDisplayName('Poor');
$levelsRubricLevel2Description = new EducationItemBody();
$levelsRubricLevel2Description->setContent('');
$levelsRubricLevel2Description->setContentType(new BodyType('text'));
$levelsRubricLevel2->setDescription($levelsRubricLevel2Description);
$levelsRubricLevel2Grading = new EducationAssignmentGradeType();
$levelsRubricLevel2Grading->set@odatatype('#microsoft.graph.educationAssignmentPointsGradeType');
$additionalData = [
'maxPoints' => 1,
];
$levelsRubricLevel2Grading->setAdditionalData($additionalData);
$levelsRubricLevel2->setGrading($levelsRubricLevel2Grading);
$levelsArray []= $levelsRubricLevel2;
$requestBody->setLevels($levelsArray);
$qualitiesRubricQuality1 = new RubricQuality();
$qualitiesRubricQuality1Description = new EducationItemBody();
$qualitiesRubricQuality1Description->setContent('Argument');
$qualitiesRubricQuality1Description->setContentType(new BodyType('text'));
$qualitiesRubricQuality1->setDescription($qualitiesRubricQuality1Description);
$criteriaRubricCriterion1 = new RubricCriterion();
$criteriaRubricCriterion1Description = new EducationItemBody();
$criteriaRubricCriterion1Description->setContent('The essay\'s argument is persuasive.');
$criteriaRubricCriterion1Description->setContentType(new BodyType('text'));
$criteriaRubricCriterion1->setDescription($criteriaRubricCriterion1Description);
$criteriaArray []= $criteriaRubricCriterion1;
$criteriaRubricCriterion2 = new RubricCriterion();
$criteriaRubricCriterion2Description = new EducationItemBody();
$criteriaRubricCriterion2Description->setContent('The essay\'s argument does not make sense.');
$criteriaRubricCriterion2Description->setContentType(new BodyType('text'));
$criteriaRubricCriterion2->setDescription($criteriaRubricCriterion2Description);
$criteriaArray []= $criteriaRubricCriterion2;
$qualitiesRubricQuality1->setCriteria($criteriaArray);
$qualitiesRubricQuality1->setWeight(50.0);
$qualitiesArray []= $qualitiesRubricQuality1;
$qualitiesRubricQuality2 = new RubricQuality();
$qualitiesRubricQuality2Description = new EducationItemBody();
$qualitiesRubricQuality2Description->setContent('Spelling and Grammar');
$qualitiesRubricQuality2Description->setContentType(new BodyType('text'));
$qualitiesRubricQuality2->setDescription($qualitiesRubricQuality2Description);
$criteriaRubricCriterion1 = new RubricCriterion();
$criteriaRubricCriterion1Description = new EducationItemBody();
$criteriaRubricCriterion1Description->setContent('The essay uses proper spelling and grammar with few or no errors.');
$criteriaRubricCriterion1Description->setContentType(new BodyType('text'));
$criteriaRubricCriterion1->setDescription($criteriaRubricCriterion1Description);
$criteriaArray []= $criteriaRubricCriterion1;
$criteriaRubricCriterion2 = new RubricCriterion();
$criteriaRubricCriterion2Description = new EducationItemBody();
$criteriaRubricCriterion2Description->setContent('The essay has numerous errors in spelling and/or grammar.');
$criteriaRubricCriterion2Description->setContentType(new BodyType('text'));
$criteriaRubricCriterion2->setDescription($criteriaRubricCriterion2Description);
$criteriaArray []= $criteriaRubricCriterion2;
$qualitiesRubricQuality2->setCriteria($criteriaArray);
$qualitiesRubricQuality2->setWeight(50.0);
$qualitiesArray []= $qualitiesRubricQuality2;
$requestBody->setQualities($qualitiesArray);
$grading = new EducationAssignmentGradeType();
$grading->set@odatatype('#microsoft.graph.educationAssignmentPointsGradeType');
$requestBody->setGrading($grading);
$requestResult = $graphServiceClient->education()->me()->rubrics()->post($requestBody);
For details about how to add the SDK to your project and create an authProvider instance, see the SDK documentation .
Response
The following is an example of the response.
Note: The response object shown here might be shortened for readability.
HTTP/1.1 201 Created
Content-type: application/json
{
"displayName": "Example Points Rubric",
"id": "bf040af7-a5ff-4abe-a8c8-1bdc532344c2",
"description": {
"content": "This is an example of a rubric with points",
"contentType": "text"
},
"levels": [
{
"levelId": "519cd134-c513-40b9-aa71-fdb0d063c084",
"displayName": "Good",
"description": {
"content": "",
"contentType": "text"
},
"grading": {
"@odata.type": "#microsoft.graph.educationAssignmentPointsGradeType",
"maxPoints": 2
}
},
{
"levelId": "db2a0c91-abef-44cb-b8b1-ef1f85ef4a77",
"displayName": "Poor",
"description": {
"content": "",
"contentType": "text"
},
"grading": {
"@odata.type": "#microsoft.graph.educationAssignmentPointsGradeType",
"maxPoints": 1
}
}
],
"qualities": [
{
"qualityId": "bbf3fb4a-a794-4b51-a1ad-c22fb891c5d8",
"weight": 50.0,
"description": {
"content": "Argument",
"contentType": "text"
},
"criteria": [
{
"id": "5e637d79-f26b-4ea6-acd7-73824f0c0967",
"description": {
"content": "The essay's argument is persuasive.",
"contentType": "text"
}
},
{
"id": "ebdcc27f-d1ec-4aa3-9da7-bd8d7842e3d3",
"description": {
"content": "The essay's argument does not make sense.",
"contentType": "text"
}
}
]
},
{
"qualityId": "ebe97fd7-47f7-4e9a-b31b-221ad731fc5a",
"weight": 50.0,
"description": {
"content": "Spelling and Grammar",
"contentType": "text"
},
"criteria": [
{
"id": "5417252a-f810-41eb-9a83-09276a258a08",
"description": {
"content": "The essay uses proper spelling and grammar with few or no errors.",
"contentType": "text"
}
},
{
"id": "5de220bd-74b9-41a7-85d5-9be7c6cb7933",
"description": {
"content": "The essay has numerous errors in spelling and/or grammar.",
"contentType": "text"
}
}
]
}
],
"grading": {
"@odata.type": "#microsoft.graph.educationAssignmentPointsGradeType",
"maxPoints": 100
}
}