Devolver solo campos específicos de la respuesta GET de la API

Continuando la discusión de Documentación de la API de Discourse:

Hola

No he podido encontrar una respuesta a esto, por favor. ¿Alguien sabe si es posible especificar que la respuesta de la API de Discourse a una solicitud GET devuelva solo el campo solicitado?

Por ejemplo, la solicitud GET para Listar miembros del grupo (https://{defaultHost}/groups/{id}/members.json) devuelve:

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

¿Hay alguna forma de que la respuesta devuelva solo un campo específico? Por ejemplo, ¿devolver solo los nombres de usuario de los miembros?

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

Sé que es posible recuperar toda la respuesta y luego usar código para filtrar el JSON y los arrays para obtener un valor específico; sin embargo, quiero que la solicitud devuelva el valor específico en su lugar. ¿Es esto posible?

¡Gracias!

1 me gusta

Gran pregunta, pero no, esta no es una opción. No hay nada en la aplicación principal que esté escuchando parámetros para filtrar.

Creo que lo mejor sería simplemente filtrar los resultados con una herramienta como jq en la línea de comandos o utilizando el lenguaje de programación que estés usando para realizar las solicitudes a la API.

Si este es realmente un requisito indispensable, existen dos opciones. Podrías usar el plugin data explorer con una consulta que devuelva solo los datos que necesitas y luego hacer una solicitud a la API a esa consulta. Otra alternativa sería crear un plugin personalizado en el que crees una nueva ruta y controlador que devuelva solo los datos que necesitas.

1 me gusta

¡Increíble! Creo que esto ayudará mucho. :folded_hands: ¡Muchas gracias!

1 me gusta

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