2016-09-23 8 views
6

mogę pobrać dane z API Trello pomocą tego:Trello API: uzyskaj członków, załączniki i informacje o karcie w jednym wywołaniu?

private function get_card_info($card_id) { 
    $client =   new \GuzzleHttp\Client(); 
    $base =   $this->endpoint . $card_id; 
    $params =   "?key=" . $this->api_key . "&token=" . $this->token;  
    $cardURL =  $base . $params; 
    $membersURL =  $base . "/members" . $params; 
    $attachmentsURL = $base . "/attachments" . $params; 

    $response = $client->get($cardURL); 
    $this->card_info['card'] = json_decode($response->getBody()->getContents()); 

    $response = $client->get($membersURL); 
    $this->card_info['members'] = json_decode($response->getBody()->getContents()); 

    $response = $client->get($attachmentsURL);  
    $this->card_info['attachments'] = json_decode($response->getBody()->getContents()); 
} 

Jednak ten jest podzielony na trzy rozmowy. Czy istnieje sposób, aby uzyskać informacje o karcie, informacje o członku i informacje o załączniku w jednym wywołaniu? The docs wspominając przy użyciu &fields=name,id, ale to tylko wydaje się ograniczać to, co zostało zwrócone z podstawowego wywołania do punktu końcowego cards.

To absurd, że trzeba nacisnąć API 3 razy za każdym razem, gdy potrzebuję informacji o karcie, ale nie mogę znaleźć żadnych przykładów gromadzących wszystko, co potrzebne.

Odpowiedz

4

Trello odpowiedział mi, i stwierdził, że to oni odpowiedzieli podobnie jak Władimir zrobił. Jednak jedyną odpowiedzią, jaką otrzymałem od tego było początkowe dane karty, sans załączników i członków. Jednak polecili mi także this blog post, który obejmuje żądania grupowania. Oni najwyraźniej usunęli to z dokumentów z powodu zamieszania, które stworzyli.

Aby podsumować zmiany, należy wykonać połączenie z /batch i dołączyć parametr GET o wartości urls z rozdzielaną przecinkami listą punktów końcowych do trafienia. Robocza wersja końcowa wyglądała tak:

private function get_card_info($card_id) { 
    $client =   new \GuzzleHttp\Client(); 
    $params =   "&key=" . $this->api_key . "&token=" . $this->token; 

    $cardURL = "/cards/" . $card_id; 
    $members = "/cards/" . $card_id . "/members"; 
    $attachmentsURL = "/cards/" . $card_id . "/attachments"; 

    $urls = $this->endpoint . implode(',', [$cardURL, $members, $attachmentsURL]) . $params; 

    $response = $client->get($urls); 
    $this->card = json_decode($response->getBody()->getContents(), true); 
} 
5

Spróbuj uderzanie API z następującymi parametrami:

/cards/[id]?fields=name,idList&members=true&member_fields=all&& attachments=true&&attachment_fields=all

+0

Sprawdzę to, gdy tylko wrócę do domu na mój osobisty laptop. Czy to jest w dokumentach gdziekolwiek? –

Powiązane problemy