Stack Exchange API - 获取问题对象的答案

时间:2018-01-31 23:30:28

标签: rest stackexchange-api

我使用https://api.stackexchange.com/docs。要获得示例问题,请使用地址https://api.stackexchange.com/2.2/questions/6827752?&site=stackoverflow。多亏了这一点,他得到了一个问题。以下页面显示https://api.stackexchange.com/docs/types/question,使用默认过滤器,问题将没有正文。我知道我使用过滤器来获取正文filter=withbody,即地址出来

https://api.stackexchange.com/2.2/questions/6827752?&site=stackoverflow&filter=withbody

现在我想得到问题的答案。这就是我想使用过滤器filter=withanswers的原因。这个地址

https://api.stackexchange.com/2.2/questions/6827752?&site=stackoverflow&filter=withanswers

返回错误

{
  "error_id": 400,
  "error_message": "Invalid filter specified",
  "error_name": "bad_parameter"
}

如何使用过滤器获得答案或评论?

1 个答案:

答案 0 :(得分:0)

我认为您的解决方案可以考虑2种模式。一种是使用自定义过滤器的方法。另一种是使用端点检索答案的方法。

模式1:

您可以使用https://api.stackexchange.com/2.2/questions/### questionId ###的端点创建自定义过滤器,以检索答案和答案的正文。

  1. 您可以在http://api.stackexchange.com/docs/create-filter创建自定义过滤器。
    • 在您的情况下,您可以使用this
      • question.answers;answer.body;question.body用作包含过滤器。
      • 分隔符为;
    • 因此,您检索"filter": "!T*hPNRA69ofM1izkPP"
    • 使用过滤器时,请对其进行URL编码。
      • !T*hPNRA69ofM1izkPP变为%21T%2ahPNRA69ofM1izkPP
  2. 您可以使用端点检索答案和答案的正文。
    • 当您使用问题的问题ID时,它是https://api.stackexchange.com/2.2/questions/6827752?&site=stackoverflow&filter=%21T%2ahPNRA69ofM1izkPP
  3. 模式1的结果

    当您可以访问https://api.stackexchange.com/2.2/questions/6827752?&site=stackoverflow&filter=%21T%2ahPNRA69ofM1izkPP时,您可以获得答案并回答问题。

    模式2:

    作为检索答案的端点,您可以使用/questions/{ids}/answers。如果您的问题中的问题ID为6827752,则端点如下所示。在这种情况下,为了检索答案的正文,使用了filter=withbody

    模式2的结果

    如果这对你没用,我很抱歉。