CampusAPI Blogging Services API documentation version N/A
NOTICE - The CampusAPI Documentation has moved.
Please point your browser to CampusAPI.org for the latest versions.
https://demo.dxtera.org/open/campusapi/blogging
Overview
The Blogging service package manages blogs and blog Entries.
Posters:
An Agent posts an Entry. The Blogging service also provides access to the related Resource of the posting Agent so that orchestration with a Resource service is unnecessary to normalize the authenticated identities where multiple Agents are in play.
Orchestration:
The Blogging service may be orchestrated with the Process service to provide state management and/or the Ontology service to implement subject tagging. The Blog may also be orchestrated with the Commenting service to provide a list of comments and ratings from other users as well as Commenting Books for tracking read blog entries for a specific user.
This package includes the following entities:
Entries
A blog Entry is an entity which represents some text posted by an Agent and a timestamp. The blog Entry may include additional data available through extension.
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this entry, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this entry, provided by system. | string(uri) |
displayName | The name of this entry for display. | string |
description | The description of this entry. | string |
genusType (read‑only) | The immutable type of this entry. Default type set by system unless specified in query parameter. | string(osid‑type) |
providerId | The provider of this entry. References a resource.Resource object. | string(osid‑id) |
brandingIds | The branding of this entry. References repository.Asset objects. | string(osid‑id)[] |
license | The licensing that applies to this entry. | string |
timestamp | The time of this entry. | string(date‑time) |
posterId | The poster of this entry. References a resource.Resource object | string(osid‑id) |
subjectLine | The subject line of this entry. | string |
summary | The summary or excerpt of this entry. | string |
text | The text of the entry. | string |
copyright | The copyright statement for this entry. | string |
Blogs
Blog entries are cataloged in Blogs. A single Blog may represent a set of entries posted by a single poster, or Blogs may be federated using the hierarchy pattern to include a variety of blog entries across several posters. A Blog catalog may also provide a view of certain entries filtered by topic or date.
Field | Description | Type |
---|---|---|
id(read‑only) | The unique id of this blog, provided by system. | string(osid‑id) |
uri(read‑only) | The uri of this blog, provided by system. | string(uri) |
displayName | The name of this blog for display. | string |
description | The description of this blog. | string |
genusType (read‑only) | The immutable type of this blog. Default type set by system unless specified in query parameter. | string(osid‑type) |
providerId | The provider of this blog. References a resource.Resource object. | string(osid‑id) |
brandingIds | The branding of this blog. References repository.Asset objects. | string(osid‑id)[] |
license | The licensing that applies to this blog. | string |
License
CampusAPI REST Documentation Copyright 2020 DXtera Institute. Based on the Open Service Interface Defitions: http://osid.org
/entries
Collection of entries in a system, federation of systems, or in a default blog.
Get all entries in the system or default blog.
Create a new entry in the default blog.
get /entries
Get all entries in the system or default blog.
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
- genusType: (string)
The id string to match a genusType
Example:
type.Type%3AexampleEntryType%40dxtera.org
- parentGenusType: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleEntryType%40dxtera.org
- providerId: (string)
Id string to match provider.
Example:
resource.Resource%3A3690%40demo.dxtera.org
- posterId: (string)
Id string to match poster.
Example:
resource.Resource%3A7836%40demo.dxtera.org
- blogId: (string)
The id string to match a blog
Example:
blogging.Blog%3A8374%40demo.dxtera.org
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "blogging.Entry:3074@demo.dxtera.org",
"uri": "http://demo.dxtera.org/open/campusapi/blogging/entry/blogging.Entry%3A3074%40demo.dxtera.org",
"displayName": "Display Name of this Entry",
"description": "The description of this Entry",
"genusType": "type.Type:defaultEntryType@dxtera.org",
"providerId": "resource.Resource:123@Entry",
"brandingId": "asset.Asset:2464@Entry",
"license": "The license that applies to this 2464",
"timestamp": "2021-07-21T23:15:30.000Z",
"posterId": "resource.Resource:814@demo.dxtera.org",
"subjectLine": "This is the SubjectLine",
"summary": "This is the Summary",
"text": "This is the Text",
"copyright": "This is the Copyright"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /entries
Create a new entry in the default blog.
Query Parameters
- genusType: (string)
specify a particular entry type to create
Example:
type.Type%3AexampleEntryType%40dxtera.org
- blogId: (string)
specify in which blog to create this entry
Example:
blogging.Blog%3A8374%40demo.dxtera.org
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Entry",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this entry, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this entry, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this entry for display.",
"type": "string"
},
"description": {
"description": "The description of this entry.",
"type": "string"
},
"genusType": {
"description": "The immutable type of this entry. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-type",
"readOnly": true
},
"providerId": {
"description": "The provider of this entry.",
"type": "string",
"format": "osid-id"
},
"brandingIds": {
"description": "The branding of this entry. A collection of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id"
}
},
"license": {
"description": "The licensing that applies to this entry.",
"type": "string"
},
"timestamp": {
"description": "The time of this entry.",
"type": "string",
"format": "date-time"
},
"posterId": {
"description": "The poster of this entry.",
"type": "string",
"format": "osid-id"
},
"subjectLine": {
"description": "The subject line of this entry.",
"type": "string"
},
"summary": {
"description": "The summary or excerpt of this entry.",
"type": "string"
},
"text": {
"description": "The text of the entry.",
"type": "string"
},
"copyright": {
"description": "The copyright statement for this entry.",
"type": "string"
}
}
}
Example:
{
"id": "blogging.Entry:6521@demo.dxtera.org",
"uri": "http://demo.dxtera.org/open/campusapi/blogging/entry/blogging.Entry%3A6521%40demo.dxtera.org",
"displayName": "Display Name of this Entry",
"description": "The description of this Entry",
"providerId": "resource.Resource:123@Entry",
"brandingId": "asset.Asset:6435@Entry",
"license": "The license that applies to this 6435",
"timestamp": "2021-07-21T23:15:30.000Z",
"posterId": "resource.Resource:9408@demo.dxtera.org",
"subjectLine": "This is the SubjectLine",
"summary": "This is the Summary",
"text": "This is the Text",
"copyright": "This is the Copyright"
}
Entity representing a entry form metadata.
Get form metadata for creating a new entry.
get /entries/metadata
Get form metadata for creating a new entry.
Query Parameters
- genusType: (string)
specify a particular entry type to create
Example:
type.Type%3AexampleEntryType%40dxtera.org
- blogId: (string)
specify in which blog to create this entry
Example:
blogging.Blog%3A8374%40demo.dxtera.org
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Entry",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this entry, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this entry, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this entry for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Entry.Entry:displayName@demo.dxtera.org",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this entry",
"linked": false
},
"description": {
"description": "The description of this entry.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Entry.Entry:displayName@demo.demo.dxtera.org",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this entry",
"linked": false
},
"genusType": {
"description": "The immutable type of this entry. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-type",
"readOnly": true
},
"providerId": {
"description": "The provider of this entry.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Entry.Entry:provider@demo.dxtera.org",
"existingValue": "",
"elementLabel": "Provider",
"instructions": "Enter the provider of this entry",
"linked": false
},
"brandingIds": {
"description": "The branding of this entry. A list of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"default": [],
"elementId": "Entry.Entry:branding@demo.dxtera.org",
"existingValue": "",
"elementLabel": "Branding",
"instructions": "Enter the branding images for this entry",
"linked": false
},
"license": {
"description": "The licensing that applies to this entry.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Entry.Entry:license@demo.dxtera.org",
"existingValue": "The Existing License",
"elementLabel": "License",
"instructions": "Include a license for this entry",
"linked": false
},
"timestamp": {
"description": "The time of this entry.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "blogging.Entry:timestamp@dxtera.org",
"existingValue": "",
"elementLabel": "Timestamp",
"instructions": "Enter the timestamp of this entry.",
"linked": false
},
"posterId": {
"description": "The poster of this entry.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "blogging.Entry:poster@dxtera.org",
"existingValue": null,
"elementLabel": "Poster",
"instructions": "Enter the Id of the poster for this entry.",
"linked": false
},
"subjectLine": {
"description": "The subject line of this entry.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "blogging.Entry:subjectLine@dxtera.org",
"existingValue": "The existing subject line",
"elementLabel": "Subject Line",
"instructions": "Enter a subject line for this entry.",
"linked": false
},
"summary": {
"description": "The summary or excerpt of this entry.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "blogging.Entry:summary@dxtera.org",
"existingValue": "The existing summary",
"elementLabel": "Summary",
"instructions": "Enter a summary for this entry.",
"linked": false
},
"text": {
"description": "The text of the entry.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "blogging.Entry:text@dxtera.org",
"existingValue": "The existing text",
"elementLabel": "Text",
"instructions": "Enter a text for this entry.",
"linked": false
},
"copyright": {
"description": "The copyright statement for this entry.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "blogging.Entry:copyright@dxtera.org",
"existingValue": "The existing copyright",
"elementLabel": "Copyright",
"instructions": "Enter a copyright for this entry.",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a entry
Get a entry given its id.
Update a given entry.
Delete a given entry.
get /entries/{entryId}
Get a entry given its id.
URI Parameters
- entryId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "blogging.Entry:3074@demo.dxtera.org",
"uri": "http://demo.dxtera.org/open/campusapi/blogging/entry/blogging.Entry%3A3074%40demo.dxtera.org",
"displayName": "Display Name of this Entry",
"description": "The description of this Entry",
"genusType": "type.Type:defaultEntryType@dxtera.org",
"providerId": "resource.Resource:123@Entry",
"brandingId": "asset.Asset:2464@Entry",
"license": "The license that applies to this 2464",
"timestamp": "2021-07-21T23:15:30.000Z",
"posterId": "resource.Resource:814@demo.dxtera.org",
"subjectLine": "This is the SubjectLine",
"summary": "This is the Summary",
"text": "This is the Text",
"copyright": "This is the Copyright"
}
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": "entry not found" }
put /entries/{entryId}
Update a given entry.
URI Parameters
- entryId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Entry",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this entry, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this entry, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this entry for display.",
"type": "string"
},
"description": {
"description": "The description of this entry.",
"type": "string"
},
"genusType": {
"description": "The immutable type of this entry. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-type",
"readOnly": true
},
"providerId": {
"description": "The provider of this entry.",
"type": "string",
"format": "osid-id"
},
"brandingIds": {
"description": "The branding of this entry. A collection of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id"
}
},
"license": {
"description": "The licensing that applies to this entry.",
"type": "string"
},
"timestamp": {
"description": "The time of this entry.",
"type": "string",
"format": "date-time"
},
"posterId": {
"description": "The poster of this entry.",
"type": "string",
"format": "osid-id"
},
"subjectLine": {
"description": "The subject line of this entry.",
"type": "string"
},
"summary": {
"description": "The summary or excerpt of this entry.",
"type": "string"
},
"text": {
"description": "The text of the entry.",
"type": "string"
},
"copyright": {
"description": "The copyright statement for this entry.",
"type": "string"
}
}
}
Example:
{
"id": "blogging.Entry:6521@demo.dxtera.org",
"uri": "http://demo.dxtera.org/open/campusapi/blogging/entry/blogging.Entry%3A6521%40demo.dxtera.org",
"displayName": "Display Name of this Entry",
"description": "The description of this Entry",
"providerId": "resource.Resource:123@Entry",
"brandingId": "asset.Asset:6435@Entry",
"license": "The license that applies to this 6435",
"timestamp": "2021-07-21T23:15:30.000Z",
"posterId": "resource.Resource:9408@demo.dxtera.org",
"subjectLine": "This is the SubjectLine",
"summary": "This is the Summary",
"text": "This is the Text",
"copyright": "This is the Copyright"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The entry 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": "entry not found" }
delete /entries/{entryId}
Delete a given entry.
URI Parameters
- entryId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The entry 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": "entry not found" }
Entity representing a entry form metadata for update
Get form metadata for updating an existing entry.
get /entries/{entryId}/metadata
Get form metadata for updating an existing entry.
URI Parameters
- entryId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Entry",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this entry, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this entry, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this entry for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Entry.Entry:displayName@demo.dxtera.org",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this entry",
"linked": false
},
"description": {
"description": "The description of this entry.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Entry.Entry:displayName@demo.demo.dxtera.org",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this entry",
"linked": false
},
"genusType": {
"description": "The immutable type of this entry. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-type",
"readOnly": true
},
"providerId": {
"description": "The provider of this entry.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Entry.Entry:provider@demo.dxtera.org",
"existingValue": "",
"elementLabel": "Provider",
"instructions": "Enter the provider of this entry",
"linked": false
},
"brandingIds": {
"description": "The branding of this entry. A list of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"default": [],
"elementId": "Entry.Entry:branding@demo.dxtera.org",
"existingValue": "",
"elementLabel": "Branding",
"instructions": "Enter the branding images for this entry",
"linked": false
},
"license": {
"description": "The licensing that applies to this entry.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Entry.Entry:license@demo.dxtera.org",
"existingValue": "The Existing License",
"elementLabel": "License",
"instructions": "Include a license for this entry",
"linked": false
},
"timestamp": {
"description": "The time of this entry.",
"type": "string",
"format": "date-time",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "blogging.Entry:timestamp@dxtera.org",
"existingValue": "",
"elementLabel": "Timestamp",
"instructions": "Enter the timestamp of this entry.",
"linked": false
},
"posterId": {
"description": "The poster of this entry.",
"type": "string",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "blogging.Entry:poster@dxtera.org",
"existingValue": null,
"elementLabel": "Poster",
"instructions": "Enter the Id of the poster for this entry.",
"linked": false
},
"subjectLine": {
"description": "The subject line of this entry.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "blogging.Entry:subjectLine@dxtera.org",
"existingValue": "The existing subject line",
"elementLabel": "Subject Line",
"instructions": "Enter a subject line for this entry.",
"linked": false
},
"summary": {
"description": "The summary or excerpt of this entry.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "blogging.Entry:summary@dxtera.org",
"existingValue": "The existing summary",
"elementLabel": "Summary",
"instructions": "Enter a summary for this entry.",
"linked": false
},
"text": {
"description": "The text of the entry.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "blogging.Entry:text@dxtera.org",
"existingValue": "The existing text",
"elementLabel": "Text",
"instructions": "Enter a text for this entry.",
"linked": false
},
"copyright": {
"description": "The copyright statement for this entry.",
"type": "string",
"read-only": false,
"minLength": null,
"maxLength": null,
"pattern": "",
"default": "",
"enum": [],
"elementId": "blogging.Entry:copyright@dxtera.org",
"existingValue": "The existing copyright",
"elementLabel": "Copyright",
"instructions": "Enter a copyright for this entry.",
"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": "entry not found" }
/blogs
Collection of blogs in a system or federation of systems.
Get all blogs.
Create a new blog.
get /blogs
Get all blogs.
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
- genusType: (string)
The id string to match a genusType
Example:
type.Type%3AexampleBlogType%40dxtera.org
- parentGenusType: (string)
The id string to match a parent genusType
Example:
type.Type%3AparentTypeExampleBlogType%40dxtera.org
- providerId: (string)
Id string to match provider.
Example:
resource.Resource%3A3007%40demo.dxtera.org
- entryId: (string)
Get blogs mapped to this entry.
Example:
blogging.Entry%3A160%40demo.dxtera.org
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "blogging.Blog:3168@demo.dxtera.org",
"uri": "http://demo.dxtera.org/open/campusapi/blogging/blog/blogging.Blog%3A3168%40demo.dxtera.org",
"displayName": "Display Name of this Blog",
"description": "The description of this Blog",
"genusType": "type.Type:defaultBlogType@dxtera.org",
"providerId": "resource.Resource:123@demo.dxtera.org",
"brandingId": "asset.Asset:Blog@demo.dxtera.org",
"license": "The license that applies to this Blog"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
post /blogs
Create a new blog.
Query Parameters
- genusType: (string)
specify a particular blog type to create
Example:
type.Type%3AexampleBlogType%40dxtera.org
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Blog",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this blog, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this blog, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this blog for display.",
"type": "string"
},
"description": {
"description": "The description of this blog.",
"type": "string"
},
"genusType": {
"description": "The immutable type of this blog. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-type",
"readOnly": true
},
"providerId": {
"description": "The provider of this blog.",
"type": "string",
"format": "osid-id"
},
"brandingIds": {
"description": "The branding of this blog. A collection of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id"
}
},
"license": {
"description": "The licensing that applies to this blog.",
"type": "string"
}
}
}
Example:
{
"id": "blogging.Blog:8936@demo.dxtera.org",
"uri": "http://demo.dxtera.org/open/campusapi/blogging/blog/blogging.Blog%3A8936%40demo.dxtera.org",
"displayName": "Display Name of this Blog",
"description": "The description of this Blog",
"providerId": "resource.Resource:123@demo.dxtera.org",
"brandingId": "asset.Asset:Blog@demo.dxtera.org",
"license": "The license that applies to this Blog"
}
Entity representing a blog form metadata.
Get form metadata for creating a new blog.
get /blogs/metadata
Get form metadata for creating a new blog.
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Blog",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this blog, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this blog, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this blog for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Blog.Blog:displayName@demo.dxtera.org",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this blog",
"linked": false
},
"description": {
"description": "The description of this blog.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Blog.Blog:displayName@demo.demo.dxtera.org",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this blog",
"linked": false
},
"genusType": {
"description": "The immutable type of this blog. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-type",
"readOnly": true
},
"providerId": {
"description": "The provider of this blog.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Blog.Blog:provider@demo.dxtera.org",
"existingValue": "",
"elementLabel": "Provider",
"instructions": "Enter the provider of this blog",
"linked": false
},
"brandingIds": {
"description": "The branding of this blog. A list of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"default": [],
"elementId": "Blog.Blog:branding@demo.dxtera.org",
"existingValue": "",
"elementLabel": "Branding",
"instructions": "Enter the branding images for this blog",
"linked": false
},
"license": {
"description": "The licensing that applies to this blog.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Blog.Blog:license@demo.dxtera.org",
"existingValue": "The Existing License",
"elementLabel": "License",
"instructions": "Include a license for this blog",
"linked": false
}
}
}
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
The root blogs in the blog hierarchy. A node with no parents is an orphan. While all blog 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-blog
get /blogs/root-blog
Get all root root-blog
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "blogging.Blog:3168@demo.dxtera.org",
"uri": "http://demo.dxtera.org/open/campusapi/blogging/blog/blogging.Blog%3A3168%40demo.dxtera.org",
"displayName": "Display Name of this Blog",
"description": "The description of this Blog",
"genusType": "type.Type:defaultBlogType@dxtera.org",
"providerId": "resource.Resource:123@demo.dxtera.org",
"brandingId": "asset.Asset:Blog@demo.dxtera.org",
"license": "The license that applies to this Blog"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Entity representing a blog
Get a blog given its id.
Update a given blog.
Delete a given blog.
get /blogs/{blogId}
Get a blog given its id.
URI Parameters
- blogId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"id": "blogging.Blog:3168@demo.dxtera.org",
"uri": "http://demo.dxtera.org/open/campusapi/blogging/blog/blogging.Blog%3A3168%40demo.dxtera.org",
"displayName": "Display Name of this Blog",
"description": "The description of this Blog",
"genusType": "type.Type:defaultBlogType@dxtera.org",
"providerId": "resource.Resource:123@demo.dxtera.org",
"brandingId": "asset.Asset:Blog@demo.dxtera.org",
"license": "The license that applies to this Blog"
}
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": "blog not found" }
put /blogs/{blogId}
Update a given blog.
URI Parameters
- blogId: required(string)
Body
Media type: application/json
Type: json
Content:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Blog",
"type": "object",
"properties": {
"id": {
"description": "The unique id of this blog, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this blog, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this blog for display.",
"type": "string"
},
"description": {
"description": "The description of this blog.",
"type": "string"
},
"genusType": {
"description": "The immutable type of this blog. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-type",
"readOnly": true
},
"providerId": {
"description": "The provider of this blog.",
"type": "string",
"format": "osid-id"
},
"brandingIds": {
"description": "The branding of this blog. A collection of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id"
}
},
"license": {
"description": "The licensing that applies to this blog.",
"type": "string"
}
}
}
Example:
{
"id": "blogging.Blog:8936@demo.dxtera.org",
"uri": "http://demo.dxtera.org/open/campusapi/blogging/blog/blogging.Blog%3A8936%40demo.dxtera.org",
"displayName": "Display Name of this Blog",
"description": "The description of this Blog",
"providerId": "resource.Resource:123@demo.dxtera.org",
"brandingId": "asset.Asset:Blog@demo.dxtera.org",
"license": "The license that applies to this Blog"
}
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The blog 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": "blog not found" }
delete /blogs/{blogId}
Delete a given blog.
URI Parameters
- blogId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The blog 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": "blog not found" }
Entity representing a blog form metadata for update
Get form metadata for updating an existing blog.
get /blogs/{blogId}/metadata
Get form metadata for updating an existing blog.
URI Parameters
- blogId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{
"$schema": "http://json-schema.org/draft/2019-9/schema#",
"title": "Blog",
"type": "object",
"required": ["displayName"],
"properties": {
"id": {
"description": "The unique id of this blog, provided by system.",
"type": "string",
"format": "osid-id",
"readOnly": true
},
"uri": {
"description": "The uri of this blog, provided by system.",
"type": "string",
"format": "uri",
"readOnly": true
},
"displayName": {
"description": "The name of this blog for display.",
"type": "string",
"read-only": false,
"minLength": 1,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Blog.Blog:displayName@demo.dxtera.org",
"existingValue": "The Existing Name",
"elementLabel": "Name",
"instructions": "Enter a name for this blog",
"linked": false
},
"description": {
"description": "The description of this blog.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Blog.Blog:displayName@demo.demo.dxtera.org",
"existingValue": "The Existing Description",
"elementLabel": "Description",
"instructions": "Enter a description for this blog",
"linked": false
},
"genusType": {
"description": "The immutable type of this blog. Default type set by system unless specified in query parameter.",
"type": "string",
"format": "osid-type",
"readOnly": true
},
"providerId": {
"description": "The provider of this blog.",
"type": "string",
"format": "osid-id",
"read-only": false,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Blog.Blog:provider@demo.dxtera.org",
"existingValue": "",
"elementLabel": "Provider",
"instructions": "Enter the provider of this blog",
"linked": false
},
"brandingIds": {
"description": "The branding of this blog. A list of Assets.",
"type": "array",
"items" : {
"type": "string",
"format": "osid-id",
"pattern": "",
"enum": []
},
"read-only": false,
"default": [],
"elementId": "Blog.Blog:branding@demo.dxtera.org",
"existingValue": "",
"elementLabel": "Branding",
"instructions": "Enter the branding images for this blog",
"linked": false
},
"license": {
"description": "The licensing that applies to this blog.",
"type": "string",
"read-only": false,
"minLength": 0,
"maxLength": 128,
"pattern": "",
"default": "",
"enum": [],
"elementId": "Blog.Blog:license@demo.dxtera.org",
"existingValue": "The Existing License",
"elementLabel": "License",
"instructions": "Include a license for this blog",
"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": "blog not found" }
Get children blogs for the given blog in the hierarchy.
get /blogs/{blogId}/children
Get children blogs for the given blog in the hierarchy.
URI Parameters
- blogId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "blogging.Blog:3168@demo.dxtera.org",
"uri": "http://demo.dxtera.org/open/campusapi/blogging/blog/blogging.Blog%3A3168%40demo.dxtera.org",
"displayName": "Display Name of this Blog",
"description": "The description of this Blog",
"genusType": "type.Type:defaultBlogType@dxtera.org",
"providerId": "resource.Resource:123@demo.dxtera.org",
"brandingId": "asset.Asset:Blog@demo.dxtera.org",
"license": "The license that applies to this Blog"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add blog as child of the given blog in the hierarchy.
Remove the given blog as a child of the given blog in the hierarchy.
put /blogs/{blogId}/children/{childId}
Add blog as child of the given blog in the hierarchy.
URI Parameters
- blogId: required(string)
- childId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "The child blog has been added" }
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": "blog not found" }
delete /blogs/{blogId}/children/{childId}
Remove the given blog as a child of the given blog in the hierarchy.
Get all entries in this blog
get /blogs/{blogId}/entries
Get all entries in this blog
URI Parameters
- blogId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
[
{
"id": "blogging.Entry:3074@demo.dxtera.org",
"uri": "http://demo.dxtera.org/open/campusapi/blogging/entry/blogging.Entry%3A3074%40demo.dxtera.org",
"displayName": "Display Name of this Entry",
"description": "The description of this Entry",
"genusType": "type.Type:defaultEntryType@dxtera.org",
"providerId": "resource.Resource:123@Entry",
"brandingId": "asset.Asset:2464@Entry",
"license": "The license that applies to this 2464",
"timestamp": "2021-07-21T23:15:30.000Z",
"posterId": "resource.Resource:814@demo.dxtera.org",
"subjectLine": "This is the SubjectLine",
"summary": "This is the Summary",
"text": "This is the Text",
"copyright": "This is the Copyright"
},
{
"...": "..."
}
]
HTTP status code 403
Body
Media type: application/json
Type: any
Example:
{"message": "Permission denied" }
Add the given entry to this blog
Remove the given entry from the blog.
put /blogs/{blogId}/entries/{entryId}
Add the given entry to this blog
URI Parameters
- blogId: required(string)
- entryId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "entry has been added to blog" }
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": "entry not found" }
delete /blogs/{blogId}/entries/{entryId}
Remove the given entry from the blog.
URI Parameters
- blogId: required(string)
- entryId: required(string)
HTTP status code 200
Body
Media type: application/json
Type: any
Example:
{ "message": "entry 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": "entry not found" }