Skip to main content

SOAP-to-REST

Published: Not Available

Last Update: Not Available

 

The purpose of this document is to provide a mapping from SOAP Web Service calls to REST API Endpoints. This is meant to be a quick-start guide to the migration process. With SOAP being deprecated in the near term future and removed from Learn following the public API Deprecation Policy, it is our intention to provide you the information you need in order to migrate as painlessly as possible. This is a living document and will up updated as the last few remaining gaps in functionality are closed.

New REST APIs are rolled out in new versions of Learn, but never back-ported to previous releases. To be sure the endpoint you require is available, be sure to visit the Developer Portal and check the individual endpoints you need.

Announcements

Use CaseSOAP WS CallREST Endpoint
Create Course AnnouncementAnnouncementWS.createCourseAnnouncements()POST /learn/api/public/v1/courses/{courseId}/announcements
Read Course AnnouncementAnnouncementWS.getCourseAnnouncements()GET /learn/api/public/v1/courses/{courseId}/announcements/{announcementId}
Read All Course AnnouncementsAnnouncementWS.getCourseAnnouncements()GET /learn/api/public/v1/courses/{courseId}/announcements
Update Course AnnouncementAnnouncementWS.updateCourseAnnouncements()PATCH /learn/api/public/v1/courses/{courseId}/announcements/{announcementId}
Delete Course AnnouncementAnnouncementWS.deleteCourseAnnouncements()DELETE /learn/api/public/v1/courses/{courseId}/announcements/{announcementId}
Create Organization AnnouncementAnnouncementWS.createOrgAnnouncements()POST /learn/api/public/v1/courses/{courseId}/announcements
Read Organization AnnouncementAnnouncementWS.getOrgAnnouncements()GET /learn/api/public/v1/courses/{courseId}/announcements/{announcementId}
Read All Organization AnnouncementsAnnouncementWS.getOrgAnnouncements()GET /learn/api/public/v1/courses/{courseId}/announcements
Update Organization AnnouncementAnnouncementWS.updateOrgAnnouncements()PATCH /learn/api/public/v1/courses/{courseId}/announcements/{announcementId}
Delete Organization AnnouncementAnnouncementWS.deleteOrgAnnouncements()DELETE /learn/api/public/v1/courses/{courseId}/announcements/{announcementId}
Create System AnnouncementAnnouncementWS.createSystemAnnouncements()POST /learn/api/public/v1/announcements
Read System AnnouncementAnnouncementWS.getSystemAnnouncements()GET /learn/api/public/v1/announcements/{announcementId}
Read All System AnnouncementsAnnouncementWS.getSystemAnnouncements()GET /learn/api/public/v1/announcements
Update System AnnouncementAnnouncementWS.updateSystemAnnouncements()PATCH /learn/api/public/v1/announcements/{announcementId}
Delete System AnnouncementAnnouncementWS.deleteSystemAnnouncements()DELETE /learn/api/public/v1/announcements/{announcementId}

Calendar

Use CaseSOAP WS CallREST Endpoint
Create a Course Calendar ItemCalendarWS.createCourseCalendarItem()
CalendarWS.saveCourseCalendarItem()
POST /learn/api/public/v1/calendars/items
Read a Course Calendar ItemCalendarWS.getCalendarItem()GET /learn/api/public/v1/calendars/items/{calendar type}/{calendar item id}
Read all Course Calendar ItemsCalendarWS.getCalendarItem()GET /learn/api/public/v1/calendars
GET /learn/api/public/v1/calendars/items
Update a Course Calendar ItemCalendarWS.updateCourseCalendarItem()
CalendarWS.saveCourseCalendarItem()
PATCH /learn/api/public/v1/calendars/items/{calendar type}/{calendar item id}
Delete a Course Calendar ItemCalendarWS.deleteCourseCalendarItem()DELETE /learn/api/public/v1/calendars/items/{calendar type}/{calendar item id}
Create an Institutional Calendar ItemCalendarWS.createInstitutionalCalendarItem()
CalendarWS.saveInstitutionalCalendarItem()
POST /learn/api/public/v1/calendars/items
Read an Institutional Calendar ItemCalendarWS.getCalendarItem()GET /learn/api/public/v1/calendars/items/{calendar type}/{calendar item id}
Read all Institutional Calendar ItemsCalendarWS.getCalendarItem()GET /learn/api/public/v1/calendars
GET /learn/api/public/v1/calendars/items
Update an Institutional Calendar ItemCalendarWS.updateInstitutionalCalendarItem()
CalendarWS.saveInstitutionalCalendarItem()
PATCH /learn/api/public/v1/calendars/items/{calendar type}/{calendar item id}
Delete an Institutional Calendar ItemCalendarWS.deleteInstitutionalCalendarItem()DELETE /learn/api/public/v1/calendars/items/{calendar type}/{calendar item id}
Create a Personal Calendar ItemCalendarWS.createPersonalCalendarItem()
CalendarWS.savePersonalCalendarItem()
POST /learn/api/public/v1/calendars/items
Read a Personal Calendar ItemCalendarWS.getCalendarItem()GET /learn/api/public/v1/calendars/items/{calendar type}/{calendar item id}
Read all Personal Calendar ItemsCalendarWS.getCalendarItem()GET /learn/api/public/v1/calendars
GET /learn/api/public/v1/calendars/items
Update a Personal Calendar ItemCalendarWS.updatePersonalCalendarItem()
CalendarWS.savePersonalCalendarItem()
PATCH /learn/api/public/v1/calendars/items/{calendar type}/{calendar item id}
Delete a Personal Calendar ItemCalendarWS.deletePersonalCalendarItem()DELETE /learn/api/public/v1/calendars/items/{calendar type}/{calendar item id}

Content

Use CaseSOAP WS CallREST Endpoint
Create Course TOCContentWS.saveCourseTOC()POST /learn/api/public/v1/courses/{courseId}/contents
Read Course TOCContentWS.getTOCsByCourseId()GET /learn/api/public/v1/courses/{courseId}/contents/{content ID}
Read All Course TOCContentWS.getTOCsByCourseId()GET /learn/api/public/v1/courses/{courseId}/contents
Update Course TOCContentWS.saveCourseTOC()PATCH /learn/api/public/v1/courses/{courseId}/contents
Delete Course TOCContentWS.deleteCourseTOCs()DELETE /learn/api/public/v1/courses/{courseId}/contents
Create Content ItemContentWS.saveContent()POST /learn/api/public/v1/courses/{courseId}/contents/{content ID)/children
Read Content ItemContentWS.getFilteredContent()GET /learn/api/public/v1/courses/{courseId}/contents/{content ID}
Read All Content ItemsContentWS.getFilteredContent()GET /learn/api/public/v1/courses/{courseId}/contents/{content ID)/children
Update Content ItemContentWS.saveContent()PATCH /learn/api/public/v1/courses/{courseId}/contents
Delete Content ItemContentWS.deleteContents()DELETE /learn/api/public/v1/courses/{courseId}/contents
Attach FileContentWS.addContentFile()POST /learn/api/public/v1/courses/{courseId}/contents/{content ID}/attachment
Remove FileContentWS.deleteContentFiles()DELETE /learn/api/public/v1/courses/{courseId}/contents/{contentID}/attachment/{attachment ID}
Update FileContentWS.updateContentFileLinkName()DELETE /learn/api/public/v1/courses/{courseId}/contents/{contentID}/attachment/{attachment ID}
POST /learn/api/public/v1/courses/{courseId}/contents/{content ID}/attachment
Read Content FileContentWS.getContentFiles()GET /learn/api/public/v1/courses/{courseId}/contents/{contentID}/attachment/{attachment ID}
Read All Content FilesContentWS.getContentFiles()GET /learn/api/public/v1/courses/{courseId}/contents/{content ID}/attachment
Download Content FileContentWS.getContentFiles()GET /learn/api/public/v1/courses/{courseId}/contents/{contentID}/attachment/{attachment ID}/downloads
Create LinkContentWS.saveLink()POST /learn/api/public/v1/courses/{courseId}/contents/{content ID}/children
Read LinkContentWS.getLinksByReferredToType()
ContentWS.getLinksByReferrerType()
GET /learn/api/public/v1/courses/{courseId}/contents/{content ID}
Read All LinksContentWS.getLinksByReferredToType()
ContentWS.getLinksByReferrerType()
GET /learn/api/public/v1/courses/{courseId}/contents
Update LinkContentWS.saveLink()PATCH /learn/api/public/v1/courses/{courseId}/contents/{content ID}
Delete LinkContentWS.deleteLink()DELETE /learn/api/public/v1/courses/{courseId}/contents/{content ID}
Get Reviewed StatusContentWS.getReviewStatusByCourseId()GET /learn/api/public/v1/courses/{courseId}/contents/{contentId}/users/{userId}/reviewStatus
Set Reviewed StatusContentWS.setContentReviewed()PATCH /learn/api/public/v1/courses/{courseId}/contents/{contentId}/users/{userId}/reviewStatus

Context

Use CaseSOAP WS CallREST Endpoint
Register ToolContextWS.registerTool()N/A
Emulate a UserContextWS.emulateUser()GET /learn/api/public/v1/oauth2/authorizationcode
POST /learn/api/public/v1/oauth2/token
Extend Session LifeContextWS.extendSessionLife()POST /learn/api/public/v1/oauth2/token
Get Memberships By UserIDContextWS.getMemberships()GET /learn/api/public/v1/users/{user id}/courses
Get Current User's MembershipsContextWS.getMyMemberships()GET /learn/api/public/v1/users/me/courses
Get System Installation IDContextWS.getSystemInstallationId()Use LTI
Login as UserContextWS.login()GET /learn/api/public/v1/oauth2/authorizationcode
POST /learn/api/public/v1/oauth2/token
Login with Access TicketContextWS.loginTicket()N/A
Login as ToolContextWS.loginTool()POST /learn/api/public/v1/oauth2/token
LogoutContextWS.logout()N/A

Courses

Use CaseSOAP WS CallREST Endpoint
Create CourseCourseWS.createCourse()
CourseWS.saveCourse()
POST /learn/api/public/v2/courses
Read CourseCourseWS.getCourse()GET /learn/api/public/v2/courses/{courseId}
Read All CoursesCourseWS.getCourse()GET /learn/api/public/v2/courses
Update CourseCourseWS.saveCourse()PATCH /learn/api/public/v2/courses/{courseId}
Update Course BatchUIDCourseWS.changeCourseBatchUid()PATCH /learn/api/public/v2/courses/{courseId}
Update Course CategoryCourseWS.changeCourseCategoryBatchUid()PATCH /learn/api/public/v1/catalog/categories/{categoryType}/{categoryId}
Update Course DatasourceCourseWS.changeCourseDataSourceId()PATCH /learn/api/public/v2/courses/{courseId}
Delete CourseCourseWS.deleteCourse()DELETE /learn/api/public/v2/courses/{courseId}
Create OrganizationCourseWS.createOrg()POST /learn/api/public/v2/courses
Read OrganizationCourseWS.getOrg()GET /learn/api/public/v2/courses/{courseId}
Read All OrganizationsCourseWS.getOrg()GET /learn/api/public/v2/courses
Update OrganizationCourseWS.saveCourse()PATCH /learn/api/public/v2/courses/{courseId}
Update Organization BatchUIDCourseWS.changeOrgBatchUid()PATCH /learn/api/public/v2/courses/{courseId}
Update Organization CategoryCourseWS.changeOrgCategoryBatchUid()PATCH /learn/api/public/v1/catalog/categories/{categoryType}/{categoryId}
Update Organization DatasourceCourseWS.changeOrgDataSourceId()PATCH /learn/api/public/v2/courses/{courseId}
Delete OrganizationCourseWS.deleteOrg()DELETE /learn/api/public/v2/courses/{courseId}
Create GroupCourseWS.saveGroup()POST /learn/api/public/v1/courses/{courseId}/groups
Read GroupCourseWS.getGroup()GET /learn/api/public/v1/courses/{courseId}/groups/{group Id}
Read All GroupsCourseWS.getGroup()GET /learn/api/public/v1/courses/{courseId}/groups
Update GroupCourseWS.saveGroup()PATCH /learn/api/public/v1/courses/{courseId}/groups/{group Id}
Delete GroupCourseWS.deleteGroup()DELETE /learn/api/public/v1/courses/{courseId}/groups/{group Id}
Create TermCourseWS.saveTerm()POST /learn/api/public/v1/terms
Read TermCourseWS.loadTerm()
CourseWS.loadTermByCourseId()
GET /learn/api/public/v1/terms/{term id}
Read All TermsCourseWS.loadTerms()
CourseWS.loadTermsByName()
GET /learn/api/public/v1/terms
Update TermCourseWS.saveTerm()PATCH /learn/api/public/v1/terms/{term id}
Delete TermCourseWS.deleteTerm()DELETE /learn/api/public/v1/terms/{term id}
Add Course to TermCourseWS.addCourseToTerm()PATCH /learn/api/public/v2/courses/{courseId}
Get Courses in TermCourseWS.loadCoursesInTerm()GET /learn/api/public/v2/courses?termId={term id}
Remove Course From TermCourseWS.removeCourseFromTerm()PATCH /learn/api/public/v2/courses/{courseId}
Create Course CategoryCourseWS.saveCourseCategory()POST /learn/api/public/v1/catalog/categories/{categoryType}
Read Course CategoryCourseWS.getCategories()GET /learn/api/public/v1/catalog/categories/{categoryType}/{categoryId}
Read All Course CategoriesCourseWS.getCategories()GET /learn/api/public/v1/catalog/categories/{categoryType}
Update Course CategoryCourseWS.saveCourseCategory()PATCH /learn/api/public/v1/catalog/categories/{categoryType}/{categoryId}
Delete Course CategoryCourseWS.deleteCourseCategory()DELETE /learn/api/public/v1/catalog/categories/{categoryType}/{categoryId}
Create Course Category MembershipCourseWS.saveCourseCategoryMembership()PUT /learn/api/public/v1/catalog/categories/{categoryType}/{categoryId}/courses/{courseId}
Read Course Category MembershipCourseWS.getCourseCategoryMembership()GET /learn/api/public/v1/catalog/categories/{categoryType}/{categoryId}/courses/{courseId}
GET /learn/api/public/v1/courses/{courseId}/categories
Read All Course Category MembershipsCourseWS.getCourseCategoryMembership()GET /learn/api/public/v1/catalog/categories/{categoryType}/{categoryId}/courses
Update Course Category MembershipCourseWS.saveCourseCategoryMembership()PUT /learn/api/public/v1/catalog/categories/{categoryType}/{categoryId}/courses/{courseId}
Delete Course Category MembershipCourseWS.deleteCourseCategoryMembership()DELETE /learn/api/public/v1/catalog/categories/{categoryType}/{categoryId}/courses/{courseId}
Create Organization CategoryCourseWS.saveOrgCategory()POST /learn/api/public/v1/catalog/categories/{categoryType}
Read Organization CategoryCourseWS.getCategories()GET /learn/api/public/v1/catalog/categories/{categoryType}/{categoryId}
Read All Organization CategoriesCourseWS.getCategories()GET /learn/api/public/v1/catalog/categories/{categoryType}
Update Organization CategoryCourseWS.saveOrgCategory()PATCH /learn/api/public/v1/catalog/categories/{categoryType}/{categoryId}
Delete Organization CategoryCourseWS.deleteOrgCategory()DELETE /learn/api/public/v1/catalog/categories/{categoryType}/{categoryId}
Create Organization Category MembershipCourseWS.saveOrgCategoryMembership()PUT /learn/api/public/v1/catalog/categories/{categoryType}/{categoryId}/courses/{courseId}
Read Organization Category MembershipCourseWS.getOrgCategoryMembership()GET /learn/api/public/v1/catalog/categories/{categoryType}/{categoryId}/courses/{courseId}
GET /learn/api/public/v1/courses/{courseId}/categories
Read All Organization Category MembershipsCourseWS.getOrgCategoryMembership()GET /learn/api/public/v1/catalog/categories/{categoryType}/{categoryId}/courses
Update Organization Category MembershipCourseWS.saveOrgCategoryMembership()PUT /learn/api/public/v1/catalog/categories/{categoryType}/{categoryId}/courses/{courseId}
Delete Organization Category MembershipCourseWS.deleteOrgCategoryMembership()DELETE /learn/api/public/v1/catalog/categories/{categoryType}/{categoryId}/courses/{courseId}
Create CartridgeCourseWS.saveCartridge()N/A
Read CartridgeCourseWS.getCartridge()N/A
Update CartridgeCourseWS.saveCartridge()N/A
Delete CartridgeCourseWS.deleteCartridge()N/A
Create StaffInfoCourseWS.saveStaffInfo()POST /learn/api/public/v1/users
PUT /learn/api/public/v1/courses/{course id}/users/{user id}
Read StaffInfoCourseWS.getStaffInfo()GET /learn/api/public/v1/users/{user id}
Update StaffInfoCourseWS.saveStaffInfo()PATCH /learn/api/public/v1/users/{user id}
Delete StaffInfoCourseWS.deleteStaffInfo()DELETE /learn/api/public/v1/users/{user id}
Set Course BannerCourseWS.setCourseBannerImage()N/A
Get Group ToolsCourseWS.getAvailableGroupTools()2020 Roadmap
Read ClassificationCourseWS.getClassifications()N/A

Course Memberships

Use CaseSOAP WS CallREST Endpoint
Create Course Membership CourseMembershipWS.saveCourseMembership()PUT /learn/api/public/v1/courses/{courseId}/users/{user id}
Read Course MembershipCourseMembershipWS.getCourseMembership()GET /learn/api/public/v1/courses/{courseId}/users/{user id}
Read All Course MembershipsCourseMembershipWS.getCourseMembership()GET /learn/api/public/v1/courses/{courseId}/users
Update Course MembershipsCourseMembershipWS.saveCourseMembership()PATCH /learn/api/public/v1/courses/{courseId}/users/{userId}
Delete Course MembershipsCourseMembershipWS.deleteCourseMembership()DELETE /learn/api/public/v1/courses/{courseId}/users/{userId}
Create Organization MembershipCourseMembershipWS.saveCourseMembership()PUT /learn/api/public/v1/courses/{courseId}/users/{user id}
Read Organization MembershipCourseMembershipWS.getCourseMembership()GET /learn/api/public/v1/courses/{courseId}/users/{user id}
Read All Organization MembershipsCourseMembershipWS.getCourseMembership()GET /learn/api/public/v1/courses/{courseId}/users
Update Organization MembershipsCourseMembershipWS.saveCourseMembership()PATCH /learn/api/public/v1/courses/{courseId}/users/{userId}
Delete Organization MembershipsCourseMembershipWS.deleteCourseMembership()DELETE /learn/api/public/v1/courses/{courseId}/users/{userId}
Create Group MembershipCourseMembershipWS.saveGroupMembership()PUT /learn/api/public/v1/courses/{courseId}/groups/{groupId}/users/{userId}
Read Group MembershipCourseMembershipWS.getGroupMembership()GET /learn/api/public/v1/courses/{courseId}/groups/{groupId}/users/{userId}
Read All Group MembershipsCourseMembershipWS.getGroupMembership()GET /learn/api/public/v1/courses/{courseId}/groups/{groupId}/users
Delete Group MembershipsCourseMembershipWS.deleteGroupMembership()DELETE /learn/api/public/v1/courses/{courseId}/groups/{groupId}/users/{userId}
Get Course RolesCourseMembershipWS.getCourseRoles()GET /learn/api/public/v1/courseRoles

Gradebook

Use CaseSOAP WS CallREST Endpoint
Create an AttemptGradebookWS.saveAttempts()POST /learn/api/public/v2/course/{courseId}/gradebook/columns/{columnid}/attempts
Read an AttemptGradebookWS.getAttempts()GET /learn/api/public/v2/course/{courseId}/gradebook/columns/{columnid}/attempts/{attempt id}
Read All AttemptsGradebookWS.getAttempts()GET /learn/api/public/v2/course/{courseId}/gradebook/columns/{columnid}/attempts
Update an AttemptGradebookWS.saveAttempts()PATCH /learn/api/public/v2/course/{courseId}/gradebook/columns/{columnid}/attempts/{attempt id}
Delete an AttemptGradebookWS.deleteAttempts()PATCH /learn/api/public/v2/course/{courseId}/gradebook/columns/{columnid}/attempts/{attempt id} (set to 0)
Create a ColumnGradebookWS.saveColumns()POST /learn/api/public/v2/course/{courseId}/gradebook/columns
Read a ColumnGradebookWS.getGradebookColumns()GET /learn/api/public/v2/course/{courseId}/gradebook/columns/{column id}
Read All ColumnsGradebookWS.getGradebookColumns()GET /learn/api/public/v2/course/{courseId}/gradebook/columns
Update a ColumnGradebookWS.saveColumns()PATCH /learn/api/public/v2/course/{courseId}/gradebook/columns/{column id}
Delete a ColumnGradebookWS.deleteColumns()DELETE /learn/api/public/v2/course/{courseId}/gradebook/columns/{column id}
Create a Gradebook TypeGradebookWS.saveGradebookTypes()POST /learn/api/public/v2/course/{courseId}/gradebook/columns
Read a Gradebook TypeGradebookWS.getGradebookTypes()GET /learn/api/public/v2/course/{courseId}/gradebook/columns/{column id}
Read All Gradebook TypesGradebookWS.getGradebookTypes()GET /learn/api/public/v2/course/{courseId}/gradebook/columns
Update a Gradebook TypeGradebookWS.saveGradebookTypes()PATCH /learn/api/public/v2/course/{courseId}/gradebook/columns/{column id}
Delete a Gradebook TypeGradebookWS.deleteGradebookTypes()DELETE /learn/api/public/v2/course/{courseId}/gradebook/columns/{column id}
Create a GradeGradebookWS.saveGrades()POST /learn/api/public/v2/course/{courseId}/gradebook/columns/{columnid}/attempts
Read a GradeGradebookWS.getGrades()GET /learn/api/public/v2/course/{courseId}/gradebook/columns/{columnid}/attempts/{attempt id}
Read All GradesGradebookWS.getGrades()GET /learn/api/public/v2/course/{courseId}/gradebook/columns/{columnid}/attempts
Update a GradeGradebookWS.saveGrades()PATCH /learn/api/public/v2/course/{courseId}/gradebook/columns/{columnid}/attempts/{attempt id}
Delete a GradeGradebookWS.deleteGrades()PATCH /learn/api/public/v2/course/{courseId}/gradebook/columns/{columnid}/attempts/{attempt id} (set to 0)
Create a Grading SchemaGradebookWS.saveGradingSchemas()POST /learn/api/public/v1/courses/{course id]/gradebook/schemas
Read a Grading SchemaGradebookWS.getGradingSchemas()GET /learn/api/public/v1/courses/{course id]/gradebook/schemas/{schema id}
Read All Grading SchemasGradebookWS.getGradingSchemas()GET /learn/api/public/v1/courses/{course id]/gradebook/schemas
Update a Grading SchemaGradebookWS.saveGradingSchemas()PATCH /learn/api/public/v1/courses/{course id]/gradebook/schemas/{schema id}
Delete a Grading SchemaGradebookWS.deleteGradingSchemas()DELETE /learn/api/public/v1/courses/{course id]/gradebook/schemas/{schema id}

Users

Use CaseSOAP WS CallREST Endpoint
Create a UserUserWS.saveUser()POST /learn/api/public/v1/users
Read a UserUserWS.getUser()GET /learn/api/public/v1/users/{userId}
Read All UsersUserWS.getUser()GET /learn/api/public/v1/users
Update a UserUserWS.saveUser()PATCH /learn/api/public/v1/users/{userId}
Delete a UserUserWS.deleteUser()DELETE /learn/api/public/v1/users/{userId}
Update a User's BatchUidUserWS.changeUserBatchUid()PATCH /learn/api/public/v1/users/{userId}
Update a User's DataSource IDUserWS.changeUserDataSourceId()PATCH /learn/api/public/v1/users/{userId}
Delete User by RoleUserWS.deleteUserByInstitutionRole()N/A
Create a User's Address Book EntryUserWS.saveAddressbookEntry()POST /learn/api/public/v1/users
Read a User's Address Book EntryUserWS.getAddressbookEntry()GET /learn/api/public/v1/users/{userId}
Read All a User's Address Book EntriesUserWS.getAddressbookEntry()GET /learn/api/public/v1/users
Update a User's Address Book EntryUserWS.saveAddressBbookEntry()PATCH /learn/api/public/v1/users/{userId}
Delete a User's Address Book EntryUserWS.deleteAddressBookEntry()DELETE /learn/api/public/v1/users/{userId}
Read All Institution RolesUserWS.getInstitutionRoles()GET /learn/api/public/v1/institutionRoles
Read All System RolesUserWS.getSystemRoles()GET /learn/api/public/v1/systemRoles
Read All Institution Roles Assigned to a UserUserWS.getUserInstitutionRoles()GET /learn/api/public/v1/users/{userId}
Create Observer AssociationUserWS.saveObserverAssociation()PUT /learn/api/public/v1/users/{userId}/observers/{observerId}
Read Observer AssociationUserWS.getObservee()GET /learn/api/public/v1/users/{userId}/observees
GET /learn/api/public/v1/users/{userId}/observers
Read All Observer AssociationUserWS.getObservee()GET /learn/api/public/v1/users/{userId}/observees
GET /learn/api/public/v1/users/{userId}/observers
Update Observer AssociationUserWS.saveObserverAssociation()PUT /learn/api/public/v1/users/{userId}/observers/{observerId}
Delete Observer AssociationUserWS.deleteOverserverAssociation()DELETE /learn/api/public/v1/users/{userId}/observers/{observerId}

Util

Use CaseSOAP WS CallREST Endpoint
Read All DatasourcesUtilWS.getDataSources()GET /learn/api/public/v1/dataSources
Get Required Entitlements By MethodUtilWS.getRequiredEntitlements()N/A
Check a User's EntitlementsUtilWS.checkEntitlement()N/A
Create a SettingUtilWS.saveSetting()N/A
Load a SettingUtilWS.loadSetting()N/A
Update a SettingUtilWS.saveSetting()N/A
Delete a SettingUtilWS.deleteSetting()N/A