java/spring:构建一个通用api调用程序?

2skhul33  于 2021-07-24  发布在  Java
关注(0)|答案(0)|浏览(190)

如果我有一个简单的crud接口,例如:

public interface ExternalAPI {
    ApiResponse create(ApiRequest request);
    ApiResponse update(ApiRequest request);
    void delete(int id);
    ApiResponse get(int);
}

这个接口的实现者将拥有调用一些外部api以获得响应的实际代码。例如,create可以实现为:

class GoogleService implements ExternalAPI {
 public ApiResponse create(ApiRequest request) {
        HttpEntity<String> request =
                new HttpEntity<String>(request.toString(), Map.of("Authorization", "Bearer xyz"));
        return restTemplate.postForObject(createURL, request, ApiResponse.class);
    }

我们只是调用一个api并得到响应。或者它可能有一些更复杂的实现:

class BingService implements ExternalAPI {
     public ApiResponse create(ApiRequest request) {
            // call API #1, get response, extract the returned id
            // attach the id to the payload of the second request
            // call API #2, and get the response
        }

我不想为每种类型的服务实现一个实际的类,而是想将create(和其他接口方法)的实现模板化,这样用户就可以提供调用api的模板,我的代码就可以解析模板并执行它(即执行任何逻辑、进行api调用)并返回响应。有没有任何现有的图书馆可以这样做?如果不是,在组件(模板语言、模板解析器/引擎)方面有哪些选项可以让自己更容易构建?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题