API GET 응답에서 특정 필드만 반환하기

Discourse API Documentation의 토론을 이어서 질문드립니다:

안녕하세요

이 질문에 대한 답변을 찾지 못해서요. GET 요청에 대해 Discourse API 응답이 요청된 필드만 반환하도록 지정할 수 있는지 아시는 분 계신가요?

예를 들어, 그룹 멤버 목록 조회(GET https://{defaultHost}/groups/{id}/members.json) 요청에 대한 응답은 다음과 같이 반환됩니다:

 {
   "members": [
     {
       "id": 0,
       "username": "string",
       "name": "string",
       "avatar_template": "string",
       "title": "string",
       "last_posted_at": "string",
       "last_seen_at": "string",
       "added_at": "string",
       "timezone": "string"
     }
   ],
   "owners": [
     {
       "id": 0,
       "username": "string",
       "name": "string",
       "avatar_template": "string",
       "title": "string",
       "last_posted_at": "string",
       "last_seen_at": "string",
       "added_at": "string",
       "timezone": "string"
     }
   ],
   "meta": {
     "total": 0,
     "limit": 0,
     "offset": 0
   }
 }

응답이 특정 필드만 반환하도록 하는 방법이 있을까요? 예를 들어, 멤버의 사용자 이름(username)만 반환하는 경우처럼요.

{
  "members": [
    {
       "username": "string"
    }
  ]
}

전체 응답을 가져온 후 코드를 사용하여 JSON과 배열을 필터링하여 특정 값을 추출하는 것이 가능하다는 것은 알고 있습니다. 하지만 대신 요청 자체가 특정 값을 반환하도록 하고 싶습니다. 이것이 가능한가요?

감사합니다!

좋은 질문이지만, 이는 선택 사항이 아닙니다. 코어 앱에는 필터링을 위해 파라미터를 감시하는 기능이 없습니다.

명령줄에서 jq 같은 도구를 사용하거나 API 요청을 수행하는 데 사용하는 프로그래밍 언어를 활용해 결과를 직접 필터링하는 것이 가장 좋습니다.

만약 이것이 반드시 필요한 요구사항이라면, 두 가지 옵션이 있습니다. 하나는 데이터 탐색기(data explorer) 플러그인을 사용하여 필요한 데이터만 반환하는 쿼리를 작성한 후, 해당 쿼리에 대해 API 요청을 보내는 것입니다. 다른 대안은 필요한 데이터만 반환하도록 새 라우트와 컨트롤러를 생성하는 커스텀 플러그인을 만드는 것입니다.

정말 놀랍네요! 많이 도움이 될 것 같습니다. :folded_hands: 정말 감사합니다!