Retrofit中的可选@Path参数

时间:2015-05-18 20:41:50

标签: java android retrofit

我正在寻找一种方法来制作可选的@Path参数。 假设我们有以下api方法:

/品牌/ {brand_id} /产品/ {类型}

brand_id 类型是可选的,因此这些请求有效:

  • / brand / {brand_id} / product / {type}
  • /品牌/产品/ {类型}
  • / brand / {brand_id} / product /
  • /品牌/产品/

我不想在我的界面中定义4个单独的方法,因为它们做同样的工作。

我希望我的问题很明确。 感谢。

1 个答案:

答案 0 :(得分:1)

您可以在路径中使用正则表达式,如下所示:

@Path("/brand")
public interface MyClass{

    @Get
    @Path("{brand_Id: .*}/product/{type: .*}")
    public Response doSomething();

}

在这种情况下,路径将支持此网址:

brand/product/
brand/product/{type}
brand/{brand_id}/product/
brand/{brand_id}/product/{type}

看看这个link