Restituisci solo campi specifici dalla risposta GET dell'API

Continuando la discussione da Documentazione API Discourse:

Ciao

Non ho trovato risposta a questa domanda, per favore. Qualcuno sa se è possibile specificare che la risposta dell’API Discourse a una richiesta GET restituisca solo il campo richiesto?

Ad esempio, la richiesta GET per Elenca membri del gruppo (https://{defaultHost}/groups/{id}/members.json) restituisce:

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

C’è un modo per far sì che la risposta restituisca solo un campo specifico? Ad esempio, per restituire solo i nomi utente dei membri?

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

So che è possibile recuperare l’intera risposta e poi usare il codice per filtrare il JSON e gli array al fine di ottenere un valore specifico; tuttavia, vorrei che la richiesta restituisse direttamente il valore specifico. È possibile?

Grazie!

1 Mi Piace

Ottima domanda, ma no, non è un’opzione. Non c’è nulla nell’app principale che sia in ascolto di parametri per filtrare.

Penso che ti converrebbe filtrare i risultati con uno strumento come jq dalla riga di comando o utilizzando qualsiasi linguaggio di programmazione tu stia usando per effettuare le richieste API.

Se questo è davvero un requisito indispensabile, esistono due opzioni. Potresti utilizzare il plugin Data Explorer con una query che restituisca solo i dati di cui hai bisogno ed effettuare quindi una richiesta API a quella query. Un’altra alternativa sarebbe creare un plugin personalizzato in cui crei una nuova route e un nuovo controller che restituiscano solo i dati di cui hai bisogno.

1 Mi Piace

Fantastico! Penso che questo aiuterà molto. :folded_hands: Grazie mille!

1 Mi Piace

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