@@ -19,34 +19,11 @@ def parse(cls, resp_body: dict) -> Self | None:
1919 :rtype: Self | None
2020 """
2121 try :
22- # 尝试验证模型
23- return cls .model_validate (obj = resp_body , extra = "forbid" )
22+ return cls .model_validate (obj = resp_body , extra = "allow" )
2423
2524 except Exception as e :
2625 logger .debug (f"{ format_exc ()} \n [MODEL] 解析失败" )
27- logger .warning (f"解析数据过程出错, 尝试兼容多余字段" )
28-
29- # 尝试兼容多余字段
30- return cls .__try_extra (resp_body )
31-
32- @classmethod
33- def __try_extra (cls , resp_body : dict ) -> Self | None :
34- """
35- 解析API响应数据(兼容多语字段)
36-
37- :param resp_body: 响应体
38- :type resp_body: dict
39- :return: 数据模型
40- :rtype: Self | None
41- """
42- try :
43- model_instance = cls .model_validate (obj = resp_body , extra = "allow" )
44- logger .success ("兼容多余字段成功" )
45- return model_instance
46-
47- except Exception as e :
48- logger .error (f"数据解析失败, 请提供日志并且提交issue反馈" )
49- logger .debug (f"{ format_exc ()} \n [MODEL] 解析失败" )
26+ logger .warning (f"数据解析失败, 请提供日志并且提交issue反馈" )
5027 return None
5128
5229
@@ -59,7 +36,6 @@ class QuestionAnswerAPIResponse(BaseAPIResponse):
5936
6037 questionid : int
6138 """问题ID = question_id"""
62- correctreply : str
6339 correctAnswerList : list [str ]
6440 """正确答案列表 与 answer_list 性质相同"""
6541
@@ -169,12 +145,8 @@ class BasePageDTO(BaseModel):
169145 """
170146 parentid : int
171147 """页面ID = page_id"""
172- orderIndex : int
173148 resourceid : int
174149 """资源ID / 视频ID"""
175- skipVideoTitle : int
176- note : str
177- resourceFullurl : str | None = None
178150
179151 class ContentPageDTO (BasePageDTO ):
180152 """内容元素数据模型"""
@@ -183,8 +155,6 @@ class ContentPageDTO(BasePageDTO):
183155 content : str
184156 """内容"""
185157
186- resourceDTOList : list
187-
188158 class VideoPageDTO (BasePageDTO ):
189159 """视频元素数据模型"""
190160
@@ -194,23 +164,12 @@ class VideoPageDTO(BasePageDTO):
194164 resourceid : int
195165 """视频ID = video_id"""
196166
197- resourceContentSize : int
198- videoQuestionDTOList : list
199- knowledgeResourceDTOS : list
200- videoCover : str | None = None
201- srtDTO : dict | None = None
202-
203167 class QuestionPageDTO (BasePageDTO ):
204168 """问题元素数据模型"""
205169
206170 class QuestionDTO (BaseModel ):
207171 """题目数据模型"""
208172
209- class choiceitemModel (BaseModel ):
210- choiceitemid : int
211- questionid : int
212- title : str
213-
214173 questionid : int
215174 """问题ID = question_id"""
216175 score : float
@@ -225,22 +184,6 @@ class choiceitemModel(BaseModel):
225184 2: "多选题",
226185 4: "判断题",
227186 """
228- iscontent : int
229- hardlevel : int
230- parentid : int
231- createtime : str
232- updatetime : str
233- remark : str
234- userid : int
235- orgid : int
236- isShare : int
237- blankOrder : int
238- choiceitemModels : list [choiceitemModel ] | None = None
239- tagList : list
240- link : str | None = None
241- linkList : list | None = None
242- linkOptionList : dict | None = None
243- relatedTextbookChapterDTOList : list
244187
245188 type : Literal [6 ]
246189 content : str
@@ -254,11 +197,6 @@ class DocumentPageDTO(BasePageDTO):
254197 content : str
255198 """内容"""
256199
257- resourceContentSize : int
258- docTitle : str
259- docSize : int
260- knowledgeResourceDTOS : list
261-
262200 id : int
263201 """页面ID = page_id"""
264202 relationid : int
@@ -271,11 +209,6 @@ class DocumentPageDTO(BasePageDTO):
271209 contentnodeid : int
272210 """节ID = section_id"""
273211 type : int
274- orderindex : int
275- lastmodifydate : str
276- share : int
277- status : int
278- qrcode : int
279212
280213 coursepageDTOList : list [
281214 Annotated [
0 commit comments