Building an API that Expose Data to WISEflow

This article will describe how you can set up your API to expose the metadata needed in WISEflow when using an integration client. This article will not describe how you build an API that exposes the metadata required in WISEflow, but rather show examples of endpoints using a JSON body.

It is recommended that you read Integrating With WISEflow Using the API first, as this is the recommended approach.

Other recommended articles:

Technical Details

List

As the list part is not mandatory for a working integration client, it will only be briefly described in this article. In short, the list is useful if users identify assessments using e.g., a title or do not know all parameters.

An endpoint exposing data for the list part should only expose basic metadata such as title, subtitle, and participation dates. The endpoint should be a REST-based GET endpoint returning a JSON body with zero or more assessments.

Example:

[
{
"title": "string",
"subtitle": "string",
"startDateParticipants": 0,
"endDateParticipatants": 0,
"room": "string",
"sisCode": "string"
}
]
Fetch

This is the mandatory part of the integration client and should return all metadata needed in WISEflow. 

In the below example, most of the available data fields are exposed. The metadata is individual per institution and decided upon during one or more mapping workshops. 

This endpoint can either be a single REST-based GET endpoint returning a JSON body with one assessment or multiple endpoints each returning specific metadata. This could be one endpoint for assessment data, one for student metadata, one for staff metadata, etc. 

Example with assessment metadata:

{
"examId": "string",
"title": "string",
"subTitle": "string",
"term": "string",
"examType": "string",
"code": "string",
"module": "string",
"startDateParticipants": 0,
"endDateParticipants": 0,
"startDateMarking": 0,
"endDateMarking": 0,
"gradeType": "string",
"testType": "string",
"ectsWeight": 0,
"examActivityId": "string",
"periodId": "string",
"rooms": "string",
"participationSettings": {
"permissionToSubmitLate": 0,
"timebox": 0
}
}

Example with student and staff metadata:

{
"students": {
"studentInfo": [
{
"organisationId": "string",
"nationalId": "string",
"firstName": "string",
"lastName": "string",
"userType": "string",
"emails": "string",
"phones": "string",
"language": "string",
"additionalIds": "string",
"userAlias": "string",
"externalIds": "string",
"participantGroupId": "string",
"uniqueExamId": "string",
"assessorId": "string",
"assessmentGroupIds": "string",
"roomId": "string",
"endDateParticipant": 0,
"gradeType": "string",
"ectsWeight": 0,
"markingEndDate": 0,
"participantTimebox": 0
}
]
},
"staff": {
"staffInfo": [
"organisationId": "string",
"nationalId": "string",
"firstName": "string",
"lastName": "string",
"userType": "string",
"emails": "string",
"phones": "string",
"language": "string",
"additionalIds": "string",
"userAlias": "string",
"externalIds": "string",
"role": []
]
}
}
Was this article helpful?
0 out of 0 found this helpful

Articles in this section

See more