إرجاع فقط حقول محددة من استجابة GET API

Continuing the discussion from Discourse API Documentation:

Hi

I couldn’t find an answer to this, please. Does anyone know if it’s possible to specify that the Discourse API response to a GET request returns only the requested field?

For example, the GET request to List group members (https://{defaultHost}/groups/{id}/members.json) returns:

 {
   "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
   }
 }

Is there a way to make the response return only a specific field/? For example, to return only the member’s usernames?

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

I know it’s possible to retrieve the whole response and then use coding to filter the JSON and the arrays in order to get a specific value; however, I want the request to return the specific value instead. Is this possible?

Thank you!

إعجاب واحد (1)

Great question, but no this is not an option. There is not anything in the core app that is listening for params to filter by.

I think you will be best off just filtering out the results either with a tool like jq on the command line or using whatever programming language you are using to make the api requests.

If this is indeed a must have requirement two options do exist though. You could use the data explorer plugin with a query that returns only the data you need and then make an api request to that query. Another alternative would be to create a custom plugin that you create a new route and controller for that returns only the data you need.

إعجاب واحد (1)

Amazing! I think this will help a lot. :pray: Thank you so much!

إعجاب واحد (1)

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