2014-01-23 3 views
1

저는 본교의 SIS 시스템과의 통합을 위해 노력하고 있으며 섹션 생성 및 업데이트와 관련된 문서를 조금 잘못 이해하고 있습니다. http://docs.valence.desire2learn.com/res/enroll.html#Section.SectionDataDesire2Learn Valence API 섹션 생성 및 업데이트?

내가 그것을 업데이트하거나 경로로 추가 섹션을 추가하려고하지만 때 섹션 코드 SEC1과 제 1 절이라는 이름의 기본 섹션을 만들 경로 PUT /d2l/api/lp/(version)/(orgUnitId)/sections/을 사용할 수 있습니다

: PUT /d2l/api/lp/(version)/(orgUnitId)/sections/(sectionId)을합니다 (sectionId 내 이전 PUT에서 검색 포함) 또는 POST /d2l/api/lp/(version)/(orgUnitId)/sections/

내 JSON 데이터의 다음 블록을 사용하고 있습니다 :

{ 
    "Name": "Section 1d", 
    "Code": "Dan 101", 
    "Description": { 
    "Text": "", 
    "Html": "" 
    } 
} 

내가 구문에서 누락하고 무엇을?

고맙습니다.

답변

0

경로와 같습니다. 귀하의 요청은 괜찮습니다. 경로가있는 작은 변화가 하나뿐입니다. 당신이 필요로하는

"Description": { 
    "Text": "", 
    "Html": "" 
} 

: 당신은 대신 D2L Conventions

기본적으로 문서에 설명되어있는 RichTextInput 필드를 사용할 필요가

"Description": { 
    "Content": "", 
    "Type": "" (Either Text or Html) 
} 
+1

문제가있었습니다. 고맙습니다! – Dan

+1

감사! 당신은 내가 한 것과 똑같은 말을했지만, 더 적은 단어로 말했습니다! 8) –

1

작성할 발랑 학습 프레임 워크 API를 사용하는 방법 코스 제공을위한 섹션은 특이합니다. 더 하위 조직 단위 (어떤 부분, 어떤 그룹, 아무것도)이없는 빈 물론, 시작 가정 :

GET /d2l/api/lp/1.3/orgstructure/113459 
> {"Name": "Extensibility 106", 
    "Identifier": "113459", 
    "Type": {"Name": "Course Offering", 
      "Code": "Course Offering", 
      "Id": 3}, 
    "Code": "EXT-106"} 

GET /d2l/api/lp/1.3/orgstructure/113459/children 
> [] 

섹션 속성와 과정을 초기화합니다. 당신이해야 할 첫 번째 일은 코스 제공을위한 섹션 속성을 정의하는 것입니다 : 코스 제공에서 어떤 종류의 섹션을 만들고 싶습니까? 강좌 오퍼링의 섹션 속성을 만들려면 SectionPropertyData 블록을 사용합니다.

{"AutoEnroll": true, 
"EnrollmentQuantity": 10, 
"EnrollmentStyle": 2, 
"RandomizeEnrollments": true} 

을 지금이와 과정을 초기화 : 여기 (EnrollmentStyle 2 NumberOfSectionsAutoEnrollment에 해당) "나는이 부분으로, 무작위,이 과정은 학생들을 자동으로 등록 할 10 개 섹션과를 갖고 싶어"라는 하나 설정, 우리는이 경로를 차단을 PUT , 만든 첫 번째 기본 섹션 (들)이 있습니다

이 호출로, 우리는 지금이 과정 제공의 자식으로 10 개 섹션을 만든 공지 사항 것을
PUT /d2l/api/lp/1.3/113459/sections/ 
> [{"SectionId":113460, 
    "Name":"Section 1", 
    "Description":{"Text":"","Html":""}, 
    "Enrollments":[]}, 
    ... 
    {"SectionId":113469, 
    "Name":"Section 10", 
    "Description":{"Text":"","Html":""}, 
    "Enrollments":[]} 
    ] 

, 백엔드 서비스는 자동으로 이름 (및 코드)을 생성합니다. 그들.

사실 뒤에 새 섹션을 추가하십시오. 이제 열한 번째 섹션을이 코스에 추가하려고한다고 가정합니다. 첫째, 우리는 새로운 섹션의 속성에 대한 SectionData 블록을 사용해야합니다

{"Name": "Section 11", 
"Code": "Sec11", 
"Description": {"Content": "New Section Descr.", "Type": "Text} } 

( : 새 섹션을 만들려면이 블록을 형성 할 때 Description 속성의 RichTextInput 형 구조를 사용합니다.서비스에서 섹션의 속성을 가져 오면 대신 RichText 속성을 사용하여 설명을 씁니다.

POST /d2l/api/lp/1.3/113459/sections/ 
> {"SectionId":113470, 
    "Name":"Section 11", 
    "Description":{"Text":"Description","Html":""}, 
    "Enrollments":[]} 

당신은 새로 만든 섹션의 속성을 다시 얻을 것이다 :이 프레임 워크에 새로운 devs를위한 공통 끈적 점)이 경로를 차단하는 그런

, 당신 POST입니다.

요약. 그래서 "왜 PUT하고 POST합니까?" 네, 조금 혼란이지만, 그것을 이런 식으로 생각 :

  1. PUT의 첫 번째 사용, 결과적으로 (갱신은 "섹션 속성"코스 제공에 대한 속성입니다 코스 오퍼링의 섹션 속성이 처음 정의되면 부작용으로 백엔드에서 새 설정과 함께 진행해야하는 섹션 조직을 만듭니다.

  2. POST의 두 번째 용도는 새 조직 단위 (새 섹션)를 만들고이를 교육 과정에 할당하는 것입니다.

+1

설명에 큰 감사드립니다. – Dan

관련 문제