在rest api调用中添加常量参数

本文关键字:添加 常量 参数 调用 rest api | 更新日期: 2023-09-27 18:25:51

我从客户端进行WCF RESTapi调用。为此,我使用了一个类型为WebChannelFactory<IRestApi>的专用对象,其中IRestApi是一个ServiceContract。

然后,我可以通过我使用的通道(由CreateChannel()创建)调用IRestApi的方法。

我的问题是:我可以向这个通道添加常量参数(在我的情况下是版本号)吗?这样我就不必在每次调用中反复传递它了?

在rest api调用中添加常量参数

我不确定您的对象/接口是如何组合在一起的,也不清楚您希望如何将此版本发送到服务器。REST API版本的正常方法是将版本放入URI中,有点像example.com/service/v8/...

在这种情况下,也许您可以使用一个decorator对象来包装这个WebChannel(我假设这是您将调用类似.get("/some/url")的类型)。您的装饰器将能够"注入"额外的数据。

您调用decoratedObject.setURLPreFix("/some_serivce/v3"),然后调用decoratedObject.get("/some/url"),decorator函数将被实现,类似于。。。

class WebChannelDecorator{
  WebChannel channel;
  String urlPrefix = "";
  WebChannelDecorator(WebChannel c){
    channel = c;
  }
  /* methods you want to work just the same */
  T foo(args){
    return channel.foo(args);
  }
  /* methods you want to 'decorate' */
  T get(String url){
    return channel.get(urlPrefix + url);
  }
  void setURLPrefix(String prefix){
    urlPrefix = prefix;
  }
}

这可能实际上并不被称为装饰器模式,但重要的是理念,而不是你所说的