难以查明 API 中 Http 422 错误的原因

我正在对 Discourse 进行主题批量导入测试,部分主题返回了 422 错误。我理解这通常意味着请求语法正确,但数据本身存在问题,不过错误信息并未具体说明数据哪里出错,导致排查困难。

例如,我曾花费大量时间排查某个主题的问题。由于消息正文较长且包含多种标点符号,我一度怀疑问题出在这些字符上,于是不断删减内容,但始终无效。

最终我发现,问题出在主题标题过短:默认最小长度为 15 个字符,而我的标题只有 13 个。后来我调整了相关设置参数才解决。当然,如果 API 能直接提示具体错误(也许它已经提示了,只是我没注意到),那会好得多。

目前我在创建以下主题时仍遇到问题。我看不出其中有任何异常,分类 ID 也是有效的,不知各位有何建议?

SEVERE: RESPONSE_CODE:422:REQUEST_JSON:{"title":"Urgent Jaikoz 1.9.2:Released","raw":"There was still a problem outstanding with the previous release with regards to MusicBRainz functionality, please update immediately.\r\n\r\nMore details at http://www.jthink.net/jaikoz/jsp/news/start.jsp ","category":1358,"created_at":"2007-05-24 10:06:20"}
4 个赞

在这种情况下,问题已找到:标题是重复的(在去除尾部空格后)。我猜流程是手动在用户界面中创建并观察结果。

5 个赞

通过 API 向 Discourse 发布帖子时,您可以将 skip_validations 参数设置为 true,以避免因站点设置限制而导致的 422 错误。

5 个赞

太好了,谢谢。
不过真希望早点知道这个。https://docs.discourse.org/ 上有相关文档吗?我没找到。

3 个赞

没有,但我会把它加上去。

5 个赞

已确认确实有效

3 个赞

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.