Dadata Suggestions API client for Spring (Java)
Dadata API client based on non-blocking HTTP client of Spring WebClient. Supports all methods of Suggestion API
Gradle:
dependencies {
implementation 'com.github.kuliginstepan:dadata-client:Tag'
}
Maven:
<dependency>
<groupId>com.github.kuliginstepan</groupId>
<artifactId>dadata-client</artifactId>
<version>Tag</version>
</dependency>
Dadata client provides DadataClientAutoConfiguration which configures DadataClient bean for you.
It's required to add property dadata.client.token with your Dadata API Token.
You may add property dadata.client.timeout to configure dadata client request timeout, defaults to 5 seconds.
Via dadata.client.baseUrl you can change Dadata base url, defaults to https://suggestions.dadata.ru/suggestions/api/4_1/rs
dadata.client.maxInMemorySize defines max buffer size for response, defaults to 512K. You can change it if you have memory issues.
dadata.client.proxy.type - valid values are: HTTP, SOCKS4, SOCKS5, defaults to HTTP
dadata.client.proxy.server - proxy hostname or ip address
dadata.client.proxy.port - proxy port, positive number
If you have configured above options you can use authentication via username/password pair just setting system properties for them.
- for HTTP proxy you should use
http.proxyUserandhttp.proxyPasswordrespectively. - for SOCKS proxy you should use
java.net.socks.usernameandjava.net.socks.passwordrespectively.
There is no authorization at proxy if no username defined in system environment.
dadata.client.verifySsl - enable/disable server SSL-certificate verification at client-side, defaults to true
Autowire DadataClient in your beans and call api methods, for example:
@Service
public class SomeService {
@Autowired
private DadataClient client;
public Flux<Suggestion<Address>> getSuggestionsForAddress(String query) {
return client.suggestAddress(AddressRequestBuilder.create(query).build());
}
}
Request builders allow filter and rank suggestions. More examples are available in the test module