Java >> Java Tutorial >  >> Tag >> Spring

Benutzerdefinierter Twitter-Client vs. Spring Boot Twitter-Plugin

Um Twitter-Daten in meiner SaaS-Anwendung zu verwenden, wollte ich meinen eigenen benutzerdefinierten Twitter-Client schreiben, indem ich einen Rest-Call durchführte. Aber ich habe herausgefunden, dass Spring Boot ein Twitter-Plugin anbietet, mit dem Twitter-Daten abgerufen werden können. Ordentlich.

In diesem Beitrag werde ich einige Vergleiche zwischen diesen beiden Ansätzen zeigen und warum man sich gegen einen anderen entscheiden kann:

Benutzerdefinierter Twitter-Client

Der benutzerdefinierte Twitter-Client ist also ein eigenständiger Client, der eine HTTP-Entität mit Client-Secrets erstellt, die zur Authentifizierung mit der Twitter-API erforderlich sind. In diesem Client verwenden wir restOperations um den API-Endpunkt aufzurufen, der eine HTTP-Entität übergibt, und der REST-Aufruf antwortet mit dem Twitter-Datenmodell.

Das wird wie folgt aussehen:

public TwitterDataModel getTwitterData(long accountId)
{
    String url = buildRestUrl(accountId);
    ParameterizedTypeReference<HashMap<Long, TwitterDataModel>> responseType = new ParameterizedTypeReference<HashMap<Long, TwitterDataModel>>(){};
    HttpEntity entity = buildHttpEntity(CLIENT_ID, CLIENT_SECRET);
    Map<Long, TwitterDataModel> twitterDataModelMap = restOperations.exchange(url, HttpMethod.GET, entity, responseType).getBody();

    Long keyForData = new Long(accountId);
    TwitterDataModel twitterDataModel = twitterDataModelMap.get(keyForData);

    return twitterDataModel;
}

public String buildRestUrl(long accountId)
{
    return TWITTER_REST_ENDPOINT + accountId + TWITTER_REST_API;
}

An diesem Ansatz ist nicht viel auszusetzen, außer der Tatsache, dass wir ein zusätzliches TwitterDataModel-Geschäftsobjekt schreiben müssen. Außerdem sollte dieses Geschäftsmodell erstellt werden, bevor wir den eigentlichen REST-Aufruf durchführen.

Spring Boot Twitter-Plugin

Um dieses Plugin zu verwenden, müssen wir zuerst das Plugin in Gradle oder Maven wie unten hinzufügen:

compile('org.springframework.social:spring-social-twitter')

Sobald wir dieses Plugin haben, können wir ein Objekt vom Typ Twitter hinzufügen in unserem Code zum Aufrufen von REST-APIs.

Das wird wie folgt aussehen:

private final Twitter twitter;

public TwitterDataModel getTwitterData(long accountId)
    {
        String url = buildRestUrl(accountId);
        ParameterizedTypeReference<HashMap<Long, TwitterDataModel>> responseType = new ParameterizedTypeReference<HashMap<Long, TwitterDataModel>>(){};
        HttpEntity entity = buildHttpEntity(CLIENT_ID,CLIENT_SECRET);

        Map<Long, TwitterDataModel> twitterDataModelMap = twitter.restOperations().exchange(url, HttpMethod.GET, entity, responseType).getBody();

        Long keyForData = new Long(accountId);
        TwitterDataModel twitterDataModel = twitterDataModelMap.get(keyForData);

        return twitterDataModel;
    }

    public String buildRestUrl(long accountId)
    {
        return TWITTER_REST_ENDPOINT + accountId + TWITTER_REST_API;
    }

Der Hauptvorteil dieses Plugins ist, dass wir die Daten im Twitter-Datenmodell erhalten können, das Twitter anbietet. Und dann können wir weiter mit unseren Daten umgehen.

Schlussfolgerung

In diesem Beitrag habe ich gezeigt, wie wir ein Spring Boot Twitter Social Plugin verwenden können, um Twitter-Daten zu sammeln.


Java-Tag