如果我有一个简单的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调用)并返回响应。有没有任何现有的图书馆可以这样做?如果不是,在组件(模板语言、模板解析器/引擎)方面有哪些选项可以让自己更容易构建?
暂无答案!
目前还没有任何答案,快来回答吧!