Stack Exchange 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"
}

Как получить ответы или комментарии с помощью фильтра?


person sdfgsdgsgr    schedule 31.01.2018    source источник


Ответы (1)


Я думаю, что для вашего решения можно придумать 2 шаблона. Один из них — метод с использованием пользовательского фильтра. Другой метод использует конечную точку для получения ответов.

Шаблон 1:

Вы можете создать собственный фильтр для получения ответов и тела ответа, используя конечную точку https://api.stackexchange.com/2.2/questions/### questionId ###.

  1. You can create the custom filters at http://api.stackexchange.com/docs/create-filter.
    • In your case, you can use this.
      • question.answers;answer.body;question.body was used as including filters.
      • Разделитель ;.
    • В результате вы получаете "filter": "!T*hPNRA69ofM1izkPP".
    • When you use the filter, please do URL encode it.
      • !T*hPNRA69ofM1izkPP becomes %21T%2ahPNRA69ofM1izkPP.
  2. You can retrieve answers and answer's body using the endpoint.
    • When the question ID of your question is used, it's https://api.stackexchange.com/2.2/questions/6827752?&site=stackoverflow&filter=%21T%2ahPNRA69ofM1izkPP.

Результат шаблона 1

Когда вы можете получить доступ к https://api.stackexchange.com/2.2/questions/6827752?&site=stackoverflow&filter=%21T%2ahPNRA69ofM1izkPP, вы можете получить ответы и тело ответа.

Шаблон 2:

В качестве конечной точки для получения ответов вы можете использовать /questions/{ids}/answers. Если в вашем вопросе используется идентификатор вопроса 6827752, конечная точка выглядит следующим образом. В этом случае для получения тела ответа используется filter=withbody.

Результат шаблона 2

Если это не было для вас полезным, извините.

person Tanaike    schedule 04.02.2018