
io.github.stewseo.client.yelpfusion.YelpFusionSyncBlockingClient Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of yelp-fusion-client Show documentation
Show all versions of yelp-fusion-client Show documentation
java client to build api objects, handle http transport, and parse/deserialize/serialize json to/from json
package io.github.stewseo.client.yelpfusion;
import io.github.stewseo.client.ApiClient;
import io.github.stewseo.client._types.ErrorResponse;
import io.github.stewseo.client.json.jackson.JacksonJsonpMapper;
import io.github.stewseo.client.transport.JsonEndpoint;
import io.github.stewseo.client.transport.YelpFusionTransport;
import io.github.stewseo.client.util.ObjectBuilder;
import io.github.stewseo.client.yelpfusion.business.YelpFusionBusinessClient;
import io.github.stewseo.client.yelpfusion.categories.YelpFusionCategoriesClient;
import io.github.stewseo.client.yelpfusion.events.YelpFusionEventsClient;
import io.github.stewseo.client.yelpfusion.misc.AutoCompleteRequest;
import io.github.stewseo.client.yelpfusion.misc.AutoCompleteResponse;
import io.github.stewseo.lowlevel.restclient.RestClient;
import io.github.stewseo.client.transport.TransportOptions;
import io.github.stewseo.client.transport.restclient.YelpRestClientTransport;
import org.apache.http.Header;
import org.apache.http.HttpHost;
import org.apache.http.message.BasicHeader;
import java.io.IOException;
import java.util.function.Function;
public class YelpFusionSyncBlockingClient extends ApiClient {
public YelpFusionSyncBlockingClient(YelpFusionTransport transport) {
super(transport, null);
}
public YelpFusionSyncBlockingClient(YelpFusionTransport transport, TransportOptions transportOptions) {
super(transport, transportOptions);
}
@Override
public YelpFusionSyncBlockingClient withTransportOptions(TransportOptions transportOptions) {
return new YelpFusionSyncBlockingClient(this.transport, transportOptions);
}
public static YelpFusionSyncBlockingClient createClient(String apiKey) throws IOException {
String hostName = "api.yelp.com";
int port = 443;
String scheme = "https";
HttpHost host = new HttpHost(hostName, port, scheme);
Header[] defaultHeader = {new BasicHeader("Authorization", "Bearer " + apiKey)};
RestClient restClient = RestClient.builder(host)
.setDefaultHeaders(defaultHeader)
.build();
YelpRestClientTransport transport = new YelpRestClientTransport(restClient, new JacksonJsonpMapper());
return new YelpFusionSyncBlockingClient(transport);
}
/** Businesses Endpoint client
*
*@return YelpFusionBusinessClient
*/
public YelpFusionBusinessClient businesses() {
return new YelpFusionBusinessClient(this.transport, this.transportOptions);
}
/** Categories Endpoint client
*
* @return YelpFusionCategoriesClient
*/
public YelpFusionCategoriesClient categories() {
return new YelpFusionCategoriesClient(this.transport, this.transportOptions);
}
/** Events Endpoint client
*
* @return YelpFusionEventsClient
*/
public YelpFusionEventsClient events() {
return new YelpFusionEventsClient(this.transport, this.transportOptions);
}
/** AutoComplete Endpoint
* @param request AutoCompleteRequest request
* @return AutoCompleteResponse
*/
public AutoCompleteResponse autocomplete(AutoCompleteRequest request) throws Exception {
@SuppressWarnings("unchecked")
JsonEndpoint endpoint =
(JsonEndpoint) AutoCompleteRequest._ENDPOINT;
return this.transport.performRequest(request, endpoint, this.transportOptions);
}
public final AutoCompleteResponse autocomplete(
Function> fn)
throws Exception {
return autocomplete(fn.apply(new AutoCompleteRequest.Builder()).build());
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy