Skip to content

Commit

Permalink
Transforming GithubApiClient from retrofit to feignClient
Browse files Browse the repository at this point in the history
  • Loading branch information
ahakanzn committed Apr 8, 2024
1 parent 3582c7e commit 6f29c62
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 33 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import org.gbif.registry.cli.datasetindex.batchindexer.DatasetBatchIndexer;
import org.gbif.registry.cli.datasetindex.batchindexer.DatasetBatchIndexerConfiguration;
import org.gbif.registry.cli.datasetindex.indexupdater.DatasetIndexUpdaterConfiguration;
import org.gbif.registry.pipelines.issues.GithubApiClient;
import org.gbif.registry.search.dataset.indexing.DatasetJsonConverter;
import org.gbif.registry.search.dataset.indexing.EsDatasetRealtimeIndexer;
import org.gbif.registry.search.dataset.indexing.checklistbank.ChecklistbankPersistenceServiceImpl;
Expand Down Expand Up @@ -231,6 +232,11 @@ public DatasetService datasetService(ClientBuilder clientBuilder) {
public NetworkService networkService(ClientBuilder clientBuilder) {
return clientBuilder.build(NetworkClient.class);
}

@Bean
public GithubApiClient githubApiClient(ClientBuilder clientBuilder){
return clientBuilder.build(GithubApiClient.class);
}
}

private static class CustomDateDeserializer extends DateDeserializers.DateDeserializer {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,18 +13,13 @@
*/
package org.gbif.registry.pipelines.issues;

import com.fasterxml.jackson.annotation.JsonIgnore;
import java.util.List;
import java.util.Set;

import com.fasterxml.jackson.annotation.JsonIgnore;

import lombok.Builder;
import lombok.Data;

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

@FeignClient(name = "githubApiClient", configuration = GithubClientConfig.class)
public interface GithubApiClient {
@PostMapping("/issues")
void createIssue(@RequestBody Issue issue);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,40 +13,23 @@
*/
package org.gbif.registry.pipelines.issues;

import feign.Feign;
import feign.codec.Encoder;
import feign.form.spring.SpringFormEncoder;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.ObjectFactory;
import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
import org.springframework.cloud.openfeign.support.SpringEncoder;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.gbif.ws.client.ClientBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;

/** Lightweight client for the GitHub API. */
@Configuration
public class GithubClientConfig {

@Bean
public Encoder feignFormEncoder() {
return new SpringFormEncoder(new SpringEncoder(messageConverters()));
}

@Bean
public GithubApiClient githubApiClient(IssuesConfig config) {

return Feign.builder()
.encoder(feignFormEncoder())
.target(GithubApiClient.class, config.getGithubWsUrl());
}

@Bean
public ObjectFactory<HttpMessageConverters> messageConverters() {
List<HttpMessageConverter<?>> converters = new ArrayList<>();
converters.add(new MappingJackson2HttpMessageConverter());
return () -> new HttpMessageConverters(converters);
public GithubApiClient githubApiService(IssuesConfig config) {
ObjectMapper mapper =
new ObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
return new ClientBuilder()
.withObjectMapper(mapper)
.withUrl(config.getGithubWsUrl())
.build(GithubApiClient.class);
}
}

0 comments on commit 6f29c62

Please sign in to comment.