Note that the CreateTopicData structure that you must pass the API to create a new topic does not use a RichText composite structure for the Description property on input. Instead, you must use a RichTextInput composite structure, which is slightly different:
{
"Name" : "Test Forum API",
"Description" : {
"Content" : "Test",
"Type": "HTML"
},
...
}
The API will pass back a RichText structure on output, however.
Using our test service, with a POST to an URL like this (assuming an org ID of 8083, and a forum ID of 4174)
https://myLMShost.edu/d2l/api/le/1.0/8083/discussions/forums/4174/topics/
we passed in a JSON structure that looks like this:
{'AllowAnonymousPosts': True,
'Description': {'Content': 'test', 'Type': 'HTML'},
'EndDate': None,
'IncludeNonScoredValues': False,
'IsAutoScore': True,
'IsHidden': False,
'IsLocked': False,
'MustPostToParticipate': True,
'Name': 'Test Forum API',
'RequiresApproval': False,
'ScoreOutOf': None,
'ScoringType': None,
'StartDate': None,
'UnlockEndDate': None,
'UnlockStartDate': None}
And our test service returned the new topic post, like this:
{'AllowAnonymousPosts': True,
'Description': {'Html': 'test', 'Text': ''},
'EndDate': None,
'ForumId': 4174,
'IncludeNonScoredValues': False,
'IsAutoScore': True,
'IsHidden': False,
'IsLocked': False,
'MustPostToParticipate': True,
'Name': 'Test Forum API',
'PinnedPostCount': 0,
'RatingsCount': 0,
'RatingsSum': 0,
'RequiresApproval': False,
'ScoreOutOf': None,
'ScoredCount': 0,
'ScoringType': None,
'StartDate': None,
'TopicId': 88569,
'UnapprovedPostCount': 0,
'UnlockEndDate': None,
'UnlockStartDate': None}