CampusAPI Forum Services API documentation version 0.1.2
Based on OSID version 3.0.0
https://base.url/forum
Overview
The Forum service package defines threaded diiscussion groups managing a set of posts and replies.
This package includes the following entities:
Posts
A Post is an entity that defines some text, a timestamp, and a poster.
Posters:
An Agent posts to a Forum or an Agent replies to a Post. The relationship between the Agent and its associated Resource is orchestrated within the Forum service. Posts and Replies reveal both the posting Agent and the associated poster Resource.
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this post, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this post, provided by system. | string(uri) |
displayName | The name of this post for display. | string |
description | The description of this post. | string |
genusTypeId (read‑only) | Id of the immutable type of this post. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this post. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere. | string(osid‑id)[] |
timestamp | The time of this post. | string(date‑time) |
posterId | The poster of this post. References a resource.Resource object | string(osid‑id) |
subjectLine | The subject line of this post. | string |
text | The text of the post. | string |
Replys
A Reply is similar to a Post but is in response to either a Post or another Reply. A Reply is a containable object making directly accessible any nested Replies directly on the object itself.
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this reply, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this reply, provided by system. | string(uri) |
displayName | The name of this reply for display. | string |
description | The description of this reply. | string |
genusTypeId (read‑only) | Id of the immutable type of this reply. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this reply. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere. | string(osid‑id)[] |
sequestered | Whether this reply is sequestered in that it should not appear outside of its aggregation. | boolean |
postId (read‑only) | The post associated with this reply. References a forum.Post object. | string(osid‑id) |
replyId (read‑only) | The reply associated with this reply. References a missing.MISSING object. | string(osid‑id) |
timestamp | The time of this entry. | string(date‑time) |
posterId | The posting of this entry. References a resource.Resource object | string(osid‑id) |
subjectLine | The subject line of this entry. | string |
text | The text of the entry. | string |
Forums
Forums represent collections of Posts. Forums may be created through federation or by selecting Posts based on their attributes to create a virtual catalog of Posts. Replies are always associated with their Posts and may not be cataloged independently.
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this forum, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this forum, provided by system. | string(uri) |
displayName | The name of this forum for display. | string |
description | The description of this forum. | string |
genusTypeId (read‑only) | Id of the immutable type of this forum. Default type set by system unless specified in query parameter. | string(osid‑id) |
recordTypeIds (read‑only) | Type Ids of record types available on this forum. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere. | string(osid‑id)[] |
providerId | The provider of this forum. References a resource.Resource object. | string(osid‑id) |
brandingIds | The branding of this forum. References repository.Asset objects. | string(osid‑id)[] |
license | The licensing that applies to this forum. | string |
License
CampusAPI REST Documentation Copyright 2020 DXtera Institute. Based on the Open Service Interface Defitions: http://osid.org
/posts
Collection of posts in a system, federation of systems, or in a default forum.
Get all posts in the system or default forum.
Create a new post in the default forum.
get /posts
Get all posts in the system or default forum.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexamplePostType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExamplePostType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexamplePostType%40campusapi.org
- fromDate: (string)
Get all posts from this date inclusive. Use with toDate to define date range query.
Example:
2020-10-03
- toDate: (string)
Get all posts up to this date inclusive. Use with fromDate to define date range query.
Example:
2020-12-18
- posterId: (string)
Id string to match poster.
Example:
resource.Resource%3A7836%40demo.dxtera.org
- forumId: (string)
The id string to match a forum
Example:
forum.Forum%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "forum.Post:2654@base.url",
"uri": "http://base.url/open/campusapi/forum/post/forum.Post%3A2654%40base.url",
"displayName": "Display Name of this Post",
"description": "The description of this Post",
"genusTypeId": "type.Type:defaultPostType@base.url",
"recordTypeIds": [ "type.Type:examplePostRecordType@campusapi.org", "..."],
"timestamp": "2021-07-21T23:15:30.000Z",
"posterId": "resource.Resource:2788@base.url",
"subjectLine": "This is the SubjectLine",
"text": "This is the Text"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /posts
Create a new post in the default forum.
Query Parameters
- genusType: (string)
specify a particular post type to create
Example:
type.Type%3AexamplePostType%40dxtera.org
- recordType: (array of )
specify support for one or more post record types
Example:
[ "type.Type%3AexamplePostRecordType%40campusapi.org", "..." ]
- forumId: (string)
specify in which forum to create this post
Example:
forum.Forum%3A8374%40base.url
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Post",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this post, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this post, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this post for display.",
"type": "string"
},
"description": {
"description": "The description of this post.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this post. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this post. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"timestamp": {
"description": "The time of this post.",
"type": "string",
"format": "date-time"
},
"posterId": {
"description": "The poster of this post.",
"type": "string",
"format": "osid-id"
},
"subjectLine": {
"description": "The subject line of this post.",
"type": "string"
},
"text": {
"description": "The text of the post.",
"type": "string"
}
}
}
Example:
{
"displayName": "Display Name of this Post",
"description": "The description of this Post",
"timestamp": "2021-07-21T23:15:30.000Z",
"posterId": "resource.Resource:7865@base.url",
"subjectLine": "This is the SubjectLine",
"text": "This is the Text"
}
Entity representing a post form metadata.
Get form metadata for creating a new post.
get /posts/metadata
Get form metadata for creating a new post.
Query Parameters
- genusType: (string)
specify a particular post type to create
Example:
type.Type%3AexamplePostType%40dxtera.org
- recordType: (array of )
specify support for one or more post record types
Example:
[ "type.Type%3AexamplePostRecordType%40campusapi.org", "..." ]
- forumId: (string)
specify in which forum to create this post
Example:
forum.Forum%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Post",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this post, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this post, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this post for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Post.Post:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this post",
"linked": false
},
"description": {
"description": "The description of this post.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Post.Post:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this post",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this post. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this post. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"timestamp": {
"description": "The time of this post.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "forum.Post:timestamp@dxtera.org",
"existingValue": "",
"elementLabel": "Timestamp",
"instructions": "Enter the timestamp of this post.",
"linked": false
},
"posterId": {
"description": "The poster of this post.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "forum.Post:poster@dxtera.org",
"existingValue": null,
"elementLabel": "Poster",
"instructions": "Enter the Id of the poster for this post.",
"linked": false
},
"subjectLine": {
"description": "The subject line of this post.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "forum.Post:subjectLine@dxtera.org",
"existingValue": "The existing subject line",
"elementLabel": "Subject Line",
"instructions": "Enter a subject line for this post.",
"linked": false
},
"text": {
"description": "The text of the post.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "forum.Post:text@dxtera.org",
"existingValue": "The existing text",
"elementLabel": "Text",
"instructions": "Enter a text for this post.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a post
Get a post given its id.
Update a given post.
Delete a given post.
get /posts/{postId}
Get a post given its id.
URI Parameters
- postId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "forum.Post:2654@base.url",
"uri": "http://base.url/open/campusapi/forum/post/forum.Post%3A2654%40base.url",
"displayName": "Display Name of this Post",
"description": "The description of this Post",
"genusTypeId": "type.Type:defaultPostType@base.url",
"recordTypeIds": [ "type.Type:examplePostRecordType@campusapi.org", "..."],
"timestamp": "2021-07-21T23:15:30.000Z",
"posterId": "resource.Resource:2788@base.url",
"subjectLine": "This is the SubjectLine",
"text": "This is the Text"
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "post not found" }
put /posts/{postId}
Update a given post.
URI Parameters
- postId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Post",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this post, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this post, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this post for display.",
"type": "string"
},
"description": {
"description": "The description of this post.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this post. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this post. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"timestamp": {
"description": "The time of this post.",
"type": "string",
"format": "date-time"
},
"posterId": {
"description": "The poster of this post.",
"type": "string",
"format": "osid-id"
},
"subjectLine": {
"description": "The subject line of this post.",
"type": "string"
},
"text": {
"description": "The text of the post.",
"type": "string"
}
}
}
Example:
{
"displayName": "Display Name of this Post",
"description": "The description of this Post",
"timestamp": "2021-07-21T23:15:30.000Z",
"posterId": "resource.Resource:7865@base.url",
"subjectLine": "This is the SubjectLine",
"text": "This is the Text"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The post has been updated" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "post not found" }
delete /posts/{postId}
Delete a given post.
URI Parameters
- postId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The post has been deleted" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "post not found" }
Entity representing a post form metadata for update
Get form metadata for updating an existing post.
get /posts/{postId}/metadata
Get form metadata for updating an existing post.
URI Parameters
- postId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Post",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this post, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this post, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this post for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Post.Post:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this post",
"linked": false
},
"description": {
"description": "The description of this post.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Post.Post:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this post",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this post. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this post. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"timestamp": {
"description": "The time of this post.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "forum.Post:timestamp@dxtera.org",
"existingValue": "",
"elementLabel": "Timestamp",
"instructions": "Enter the timestamp of this post.",
"linked": false
},
"posterId": {
"description": "The poster of this post.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "forum.Post:poster@dxtera.org",
"existingValue": null,
"elementLabel": "Poster",
"instructions": "Enter the Id of the poster for this post.",
"linked": false
},
"subjectLine": {
"description": "The subject line of this post.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "forum.Post:subjectLine@dxtera.org",
"existingValue": "The existing subject line",
"elementLabel": "Subject Line",
"instructions": "Enter a subject line for this post.",
"linked": false
},
"text": {
"description": "The text of the post.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "forum.Post:text@dxtera.org",
"existingValue": "The existing text",
"elementLabel": "Text",
"instructions": "Enter a text for this post.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "post not found" }
/replys
Collection of replys in a system, federation of systems, or in a default forum.
Get all replys in the system or default forum.
Create a new reply in the default forum.
get /replys
Get all replys in the system or default forum.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleReplyType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleReplyType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleReplyType%40campusapi.org
- postId: (string)
the id string to match a post.
Example:
forum.Post%3A100%40base.url
- replyId: (string)
the id string to match a reply.
Example:
forum.Post%3A125%40base.url
- fromDate: (string)
Get all replys from this date inclusive. Use with toDate to define date range query.
Example:
2020-10-03
- toDate: (string)
Get all replys up to this date inclusive. Use with fromDate to define date range query.
Example:
2020-12-18
- posterId: (string)
Id string to match poster.
Example:
resource.Resource%3A6392%40demo.dxtera.org
- forumId: (string)
The id string to match a forum
Example:
forum.Forum%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "forum.Reply:3898@base.url",
"uri": "http://base.url/open/campusapi/forum/reply/forum.Reply%3A3898%40base.url",
"displayName": "Display Name of this Reply",
"description": "The description of this Reply",
"genusTypeId": "type.Type:defaultReplyType@base.url",
"recordTypeIds": [ "type.Type:exampleReplyRecordType@campusapi.org", "..."],
"sequestered": false,
"postId": "forum.Post:2943@base.url",
"replyId": ":5079@base.url",
"timestamp": "2021-07-21T23:15:30.000Z",
"posterId": "resource.Resource:6688@base.url",
"subjectLine": "This is the SubjectLine",
"text": "This is the Text"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /replys
Create a new reply in the default forum.
Query Parameters
- postId: required(string)
the post of this reply.
Example:
forum.Post%3A100%40base.url
- replyId: required(string)
the reply of this reply.
Example:
forum.Post%3A125%40base.url
- genusType: (string)
specify a particular reply type to create
Example:
type.Type%3AexampleReplyType%40dxtera.org
- recordType: (array of )
specify support for one or more reply record types
Example:
[ "type.Type%3AexampleReplyRecordType%40campusapi.org", "..." ]
- forumId: (string)
specify in which forum to create this reply
Example:
forum.Forum%3A8374%40base.url
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Reply",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this reply, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this reply, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this reply for display.",
"type": "string"
},
"description": {
"description": "The description of this reply.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this reply. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this reply. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"sequestered": {
"description": "Whether this reply is sequestered in that it should not appear outside of its aggregation.",
"type": "boolean"
},
"postId": {
"description": "The post associated with this reply.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"replyId": {
"description": "The reply associated with this reply.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"timestamp": {
"description": "The time of this entry.",
"type": "string",
"format": "date-time"
},
"posterId": {
"description": "The posting of this entry.",
"type": "string",
"format": "osid-id"
},
"subjectLine": {
"description": "The subject line of this entry.",
"type": "string"
},
"text": {
"description": "The text of the entry.",
"type": "string"
}
}
}
Example:
{
"displayName": "Display Name of this Reply",
"description": "The description of this Reply",
"sequestered": false,
"timestamp": "2021-07-21T23:15:30.000Z",
"posterId": "resource.Resource:9054@base.url",
"subjectLine": "This is the SubjectLine",
"text": "This is the Text"
}
Entity representing a reply form metadata.
Get form metadata for creating a new reply.
get /replys/metadata
Get form metadata for creating a new reply.
Query Parameters
- postId: required(string)
the post of this metadatum.
Example:
forum.Post%3A100%40base.url
- replyId: required(string)
the reply of this metadatum.
Example:
forum.Post%3A125%40base.url
- genusType: (string)
specify a particular reply type to create
Example:
type.Type%3AexampleReplyType%40dxtera.org
- recordType: (array of )
specify support for one or more reply record types
Example:
[ "type.Type%3AexampleReplyRecordType%40campusapi.org", "..." ]
- forumId: (string)
specify in which forum to create this reply
Example:
forum.Forum%3A8374%40base.url
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Reply",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this reply, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this reply, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this reply for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Reply.Reply:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this reply",
"linked": false
},
"description": {
"description": "The description of this reply.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Reply.Reply:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this reply",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this reply. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this reply. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"sequestered": {
"description": "Whether this reply is sequestered in that it should not appear outside of its aggregation.",
"type": "boolean",
"read-only": false,
"default": false,
"elementId": "Reply.Reply:rule@base.url",
"existingValue": false,
"elementLabel": "Sequestered",
"instructions": "Indicate whether this reply is sequestered",
"linked": false
},
"timestamp": {
"description": "The time of this entry.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "forum.Reply:timestamp@dxtera.org",
"existingValue": "",
"elementLabel": "Timestamp",
"instructions": "Enter the timestamp of this reply.",
"linked": false
},
"posterId": {
"description": "The posting of this entry.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "forum.Reply:poster@dxtera.org",
"existingValue": null,
"elementLabel": "Poster",
"instructions": "Enter the Id of the poster for this reply.",
"linked": false
},
"subjectLine": {
"description": "The subject line of this entry.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "forum.Reply:subjectLine@dxtera.org",
"existingValue": "The existing subject line",
"elementLabel": "Subject Line",
"instructions": "Enter a subject line for this reply.",
"linked": false
},
"text": {
"description": "The text of the entry.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "forum.Reply:text@dxtera.org",
"existingValue": "The existing text",
"elementLabel": "Text",
"instructions": "Enter a text for this reply.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a reply
Get a reply given its id.
Update a given reply.
Delete a given reply.
get /replys/{replyId}
Get a reply given its id.
URI Parameters
- replyId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "forum.Reply:3898@base.url",
"uri": "http://base.url/open/campusapi/forum/reply/forum.Reply%3A3898%40base.url",
"displayName": "Display Name of this Reply",
"description": "The description of this Reply",
"genusTypeId": "type.Type:defaultReplyType@base.url",
"recordTypeIds": [ "type.Type:exampleReplyRecordType@campusapi.org", "..."],
"sequestered": false,
"postId": "forum.Post:2943@base.url",
"replyId": ":5079@base.url",
"timestamp": "2021-07-21T23:15:30.000Z",
"posterId": "resource.Resource:6688@base.url",
"subjectLine": "This is the SubjectLine",
"text": "This is the Text"
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "reply not found" }
put /replys/{replyId}
Update a given reply.
URI Parameters
- replyId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Reply",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this reply, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this reply, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this reply for display.",
"type": "string"
},
"description": {
"description": "The description of this reply.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this reply. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this reply. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"sequestered": {
"description": "Whether this reply is sequestered in that it should not appear outside of its aggregation.",
"type": "boolean"
},
"postId": {
"description": "The post associated with this reply.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"replyId": {
"description": "The reply associated with this reply.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"timestamp": {
"description": "The time of this entry.",
"type": "string",
"format": "date-time"
},
"posterId": {
"description": "The posting of this entry.",
"type": "string",
"format": "osid-id"
},
"subjectLine": {
"description": "The subject line of this entry.",
"type": "string"
},
"text": {
"description": "The text of the entry.",
"type": "string"
}
}
}
Example:
{
"displayName": "Display Name of this Reply",
"description": "The description of this Reply",
"sequestered": false,
"timestamp": "2021-07-21T23:15:30.000Z",
"posterId": "resource.Resource:9054@base.url",
"subjectLine": "This is the SubjectLine",
"text": "This is the Text"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The reply has been updated" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "reply not found" }
delete /replys/{replyId}
Delete a given reply.
URI Parameters
- replyId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The reply has been deleted" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "reply not found" }
Entity representing a reply form metadata for update
Get form metadata for updating an existing reply.
get /replys/{replyId}/metadata
Get form metadata for updating an existing reply.
URI Parameters
- replyId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Reply",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this reply, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this reply, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this reply for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Reply.Reply:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this reply",
"linked": false
},
"description": {
"description": "The description of this reply.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Reply.Reply:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this reply",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this reply. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this reply. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"sequestered": {
"description": "Whether this reply is sequestered in that it should not appear outside of its aggregation.",
"type": "boolean",
"read-only": false,
"default": false,
"elementId": "Reply.Reply:rule@base.url",
"existingValue": false,
"elementLabel": "Sequestered",
"instructions": "Indicate whether this reply is sequestered",
"linked": false
},
"timestamp": {
"description": "The time of this entry.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "forum.Reply:timestamp@dxtera.org",
"existingValue": "",
"elementLabel": "Timestamp",
"instructions": "Enter the timestamp of this reply.",
"linked": false
},
"posterId": {
"description": "The posting of this entry.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "forum.Reply:poster@dxtera.org",
"existingValue": null,
"elementLabel": "Poster",
"instructions": "Enter the Id of the poster for this reply.",
"linked": false
},
"subjectLine": {
"description": "The subject line of this entry.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "forum.Reply:subjectLine@dxtera.org",
"existingValue": "The existing subject line",
"elementLabel": "Subject Line",
"instructions": "Enter a subject line for this reply.",
"linked": false
},
"text": {
"description": "The text of the entry.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "forum.Reply:text@dxtera.org",
"existingValue": "The existing text",
"elementLabel": "Text",
"instructions": "Enter a text for this reply.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "reply not found" }
/forums
Collection of forums in a system or federation of systems.
Get all forums.
Create a new forum.
get /forums
Get all forums.
Query Parameters
- offset: (integer - default: 0)
Skip over a number of elements by specifying an offset value for the query
Example:
20
- limit: (integer - default: 10)
Limit the number of elements on the response
Example:
80
- genusTypeId: (string)
The id string to match a genusType
Example:
type.Type%3AexampleForumType%40dxtera.org
- parentGenusTypeId: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleForumType%40dxtera.org
- recordTypeId: (string)
The id string to match a recordType
Example:
type.Type%3AexampleForumType%40campusapi.org
- providerId: (string)
Id string to match provider.
Example:
resource.Resource%3A3007%40demo.dxtera.org
- postId: (string)
Get forums mapped to this post.
Example:
forum.Post%3A100%40demo.dxtera.org
- replyId: (string)
Get forums mapped to this reply.
Example:
forum.Reply%3A125%40demo.dxtera.org
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "forum.Forum:4925@base.url",
"uri": "http://base.url/open/campusapi/forum/forum/forum.Forum%3A4925%40base.url",
"displayName": "Display Name of this Forum",
"description": "The description of this Forum",
"genusTypeId": "type.Type:defaultForumType@base.url",
"recordTypeIds": [ "type.Type:exampleForumRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Forum@base.url",
"license": "The license that applies to this Forum"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /forums
Create a new forum.
Query Parameters
- genusType: (string)
specify a particular forum type to create
Example:
type.Type%3AexampleForumType%40dxtera.org
- recordType: (array of )
specify support for one or more forum record types
Example:
[ "type.Type%3AexampleForumRecordType%40campusapi.org", "..." ]
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Forum",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this forum, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this forum, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this forum for display.",
"type": "string"
},
"description": {
"description": "The description of this forum.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this forum. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this forum. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"providerId": {
"description": "The provider of this forum.",
"type": "string",
"format": "osid-id"
},
"brandingIds": {
"description": "The branding of this forum. A collection of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id"
}
},
"license": {
"description": "The licensing that applies to this forum.",
"type": "string"
}
}
}
Example:
{
"displayName": "Display Name of this Forum",
"description": "The description of this Forum",
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Forum@base.url",
"license": "The license that applies to this Forum"
}
Entity representing a forum form metadata.
Get form metadata for creating a new forum.
get /forums/metadata
Get form metadata for creating a new forum.
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Forum",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this forum, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this forum, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this forum for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Forum.Forum:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this forum",
"linked": false
},
"description": {
"description": "The description of this forum.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Forum.Forum:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this forum",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this forum. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this forum. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"providerId": {
"description": "The provider of this forum.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Forum.Forum:provider@base.url",
"existingValue": "",
"elementLabel": "Provider",
"instructions": "Enter the provider of this forum",
"linked": false
},
"brandingIds": {
"description": "The branding of this forum. A list of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"default": [],
"elementId": "Forum.Forum:branding@base.url",
"existingValue": "",
"elementLabel": "Branding",
"instructions": "Enter the branding images for this forum",
"linked": false
},
"license": {
"description": "The licensing that applies to this forum.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Forum.Forum:license@base.url",
"existingValue": "The Existing License",
"elementLabel": "License",
"instructions": "Include a license for this forum",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
The root forums in the forum hierarchy. A node with no parents is an orphan. While all forum Ids are known to the hierarchy, an orphan does not appear in the hierarchy unless explicitly added as a root node or child of another node.
Get all root root-forum
get /forums/root-forum
Get all root root-forum
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "forum.Forum:4925@base.url",
"uri": "http://base.url/open/campusapi/forum/forum/forum.Forum%3A4925%40base.url",
"displayName": "Display Name of this Forum",
"description": "The description of this Forum",
"genusTypeId": "type.Type:defaultForumType@base.url",
"recordTypeIds": [ "type.Type:exampleForumRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Forum@base.url",
"license": "The license that applies to this Forum"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a forum
Get a forum given its id.
Update a given forum.
Delete a given forum.
get /forums/{forumId}
Get a forum given its id.
URI Parameters
- forumId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "forum.Forum:4925@base.url",
"uri": "http://base.url/open/campusapi/forum/forum/forum.Forum%3A4925%40base.url",
"displayName": "Display Name of this Forum",
"description": "The description of this Forum",
"genusTypeId": "type.Type:defaultForumType@base.url",
"recordTypeIds": [ "type.Type:exampleForumRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Forum@base.url",
"license": "The license that applies to this Forum"
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "forum not found" }
put /forums/{forumId}
Update a given forum.
URI Parameters
- forumId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Forum",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this forum, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this forum, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this forum for display.",
"type": "string"
},
"description": {
"description": "The description of this forum.",
"type": "string"
},
"genusTypeId": {
"description": "Id of the immutable type of this forum. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this forum. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"providerId": {
"description": "The provider of this forum.",
"type": "string",
"format": "osid-id"
},
"brandingIds": {
"description": "The branding of this forum. A collection of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id"
}
},
"license": {
"description": "The licensing that applies to this forum.",
"type": "string"
}
}
}
Example:
{
"displayName": "Display Name of this Forum",
"description": "The description of this Forum",
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Forum@base.url",
"license": "The license that applies to this Forum"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The forum has been updated" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "forum not found" }
delete /forums/{forumId}
Delete a given forum.
URI Parameters
- forumId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The forum has been deleted" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "forum not found" }
Entity representing a forum form metadata for update
Get form metadata for updating an existing forum.
get /forums/{forumId}/metadata
Get form metadata for updating an existing forum.
URI Parameters
- forumId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Forum",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this forum, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this forum, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this forum for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Forum.Forum:displayName@base.url",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this forum",
"linked": false
},
"description": {
"description": "The description of this forum.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Forum.Forum:displayName@demo.base.url",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this forum",
"linked": false
},
"genusTypeId": {
"description": "Id of the immutable type of this forum. Default type set by system unless specified in query parameter on initial post.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"recordTypeIds": {
"description": "Type Ids of record types available on this forum. Record types define special attributes available on an object to support specific applications or classes of applications and are documented elsewhere.",
"type": "array",
"items": {
"type": "string",
"format": "osid-id"
},
"readOnly": true
},
"providerId": {
"description": "The provider of this forum.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Forum.Forum:provider@base.url",
"existingValue": "",
"elementLabel": "Provider",
"instructions": "Enter the provider of this forum",
"linked": false
},
"brandingIds": {
"description": "The branding of this forum. A list of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"default": [],
"elementId": "Forum.Forum:branding@base.url",
"existingValue": "",
"elementLabel": "Branding",
"instructions": "Enter the branding images for this forum",
"linked": false
},
"license": {
"description": "The licensing that applies to this forum.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Forum.Forum:license@base.url",
"existingValue": "The Existing License",
"elementLabel": "License",
"instructions": "Include a license for this forum",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{"message": "forum not found" }
Get child forums for the given forum in the hierarchy.
get /forums/{forumId}/children
Get child forums for the given forum in the hierarchy.
URI Parameters
- forumId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "forum.Forum:4925@base.url",
"uri": "http://base.url/open/campusapi/forum/forum/forum.Forum%3A4925%40base.url",
"displayName": "Display Name of this Forum",
"description": "The description of this Forum",
"genusTypeId": "type.Type:defaultForumType@base.url",
"recordTypeIds": [ "type.Type:exampleForumRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Forum@base.url",
"license": "The license that applies to this Forum"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add forum as child of the given forum in the hierarchy.
Remove the given forum as a child of the given forum in the hierarchy.
put /forums/{forumId}/children/{childId}
Add forum as child of the given forum in the hierarchy.
URI Parameters
- forumId: required(string)
- childId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The child forum has been added to the hierarchy" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "forum not found" }
delete /forums/{forumId}/children/{childId}
Remove the given forum as a child of the given forum in the hierarchy.
URI Parameters
- forumId: required(string)
- childId: required(string)
Get parent forums for the given forum in the hierarchy.
get /forums/{forumId}/parents
Get parent forums for the given forum in the hierarchy.
URI Parameters
- forumId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "forum.Forum:4925@base.url",
"uri": "http://base.url/open/campusapi/forum/forum/forum.Forum%3A4925%40base.url",
"displayName": "Display Name of this Forum",
"description": "The description of this Forum",
"genusTypeId": "type.Type:defaultForumType@base.url",
"recordTypeIds": [ "type.Type:exampleForumRecordType@campusapi.org", "..."],
"providerId": "resource.Resource:123@base.url",
"brandingId": "asset.Asset:Forum@base.url",
"license": "The license that applies to this Forum"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Get all posts in this forum
get /forums/{forumId}/posts
Get all posts in this forum
URI Parameters
- forumId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "forum.Post:2654@base.url",
"uri": "http://base.url/open/campusapi/forum/post/forum.Post%3A2654%40base.url",
"displayName": "Display Name of this Post",
"description": "The description of this Post",
"genusTypeId": "type.Type:defaultPostType@base.url",
"recordTypeIds": [ "type.Type:examplePostRecordType@campusapi.org", "..."],
"timestamp": "2021-07-21T23:15:30.000Z",
"posterId": "resource.Resource:2788@base.url",
"subjectLine": "This is the SubjectLine",
"text": "This is the Text"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given post to this forum
Remove the given post from the forum.
put /forums/{forumId}/posts/{postId}
Add the given post to this forum
URI Parameters
- forumId: required(string)
- postId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "post has been added to forum" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "post not found" }
delete /forums/{forumId}/posts/{postId}
Remove the given post from the forum.
URI Parameters
- forumId: required(string)
- postId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "post has been removed" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "post not found" }
Get all replys in this forum
get /forums/{forumId}/replys
Get all replys in this forum
URI Parameters
- forumId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "forum.Reply:3898@base.url",
"uri": "http://base.url/open/campusapi/forum/reply/forum.Reply%3A3898%40base.url",
"displayName": "Display Name of this Reply",
"description": "The description of this Reply",
"genusTypeId": "type.Type:defaultReplyType@base.url",
"recordTypeIds": [ "type.Type:exampleReplyRecordType@campusapi.org", "..."],
"sequestered": false,
"postId": "forum.Post:2943@base.url",
"replyId": ":5079@base.url",
"timestamp": "2021-07-21T23:15:30.000Z",
"posterId": "resource.Resource:6688@base.url",
"subjectLine": "This is the SubjectLine",
"text": "This is the Text"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given reply to this forum
Remove the given reply from the forum.
put /forums/{forumId}/replys/{replyId}
Add the given reply to this forum
URI Parameters
- forumId: required(string)
- replyId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "reply has been added to forum" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "reply not found" }
delete /forums/{forumId}/replys/{replyId}
Remove the given reply from the forum.
URI Parameters
- forumId: required(string)
- replyId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "reply has been removed" }
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
HTTP status code 404
Body
Media type: application/json
Type: any
Example:
{ "message": "reply not found" }