小编STK*_*K90的帖子

RxJava + Retrofit 2 链接 API 请求

我需要通过将多个改造 API 调用链接在一起来创建一个 observable。

我有 2 个服务:ItemService,它只包含项目名称和 id,以及 ItemDetailsS​​ervice,它包含有关项目的许多其他详细信息,如描述图像等。我正在使用 Retrofit 2 + RxJava + Dagger 2。

项目服务:

@GET("apione/items")
Observable<List<Items>> getItems();
Run Code Online (Sandbox Code Playgroud)

ItemDetailsS​​ervice:

@GET("apitwo/item/{id}")
Observable<ItemDetail> getItemDetails(@Path("id") int id);
Run Code Online (Sandbox Code Playgroud)

项目 json:

[
  {
    "id": 1,
    "name": "one"
  },
  {
    "id": 2,
    "name": "two"
  },
    {
    "id": 3,
    "name": "three"
  }
]
Run Code Online (Sandbox Code Playgroud)

用于具体项目 ID 的 ItemDetails json:

  {
    "id": 1,
    "image_url": "http://.../1.png",
    "description": "description of item one",
    "category": "cat_1",
    "quantity" 10
  }
Run Code Online (Sandbox Code Playgroud)

此外,这 2 个 API 具有不同的基本 URL。那么如何制作一个 Observable 返回带有图像、数量和类别的项目列表呢?

更新

我卡在这里了。这是我的ItemPresenter

public …
Run Code Online (Sandbox Code Playgroud)

android rx-java dagger-2 retrofit2

6
推荐指数
1
解决办法
2949
查看次数

Dagger2,同时为不同的API提供Retrofit实例

在我的项目中,我使用Retrofit并尝试使用Dagger注入依赖项.我还有2个不同API的Retrofit服务.我需要同时使用2个不同的API和不同的baseUrls.我坚持到这里,不知道接下来该做什么.

我的ApplicationModule:

@Module
public class ApplicationModule {

private String FIRST_API_URL = "https://first-api.com";
private String SECOND_API_URL = "https://second-api.com";

private String mBaseUrl;
private Context mContext;

public ApplicationModule(Context context) {
    mContext = context;
}

@Singleton
@Provides
GsonConverterFactory provideGsonConverterFactory() {
    return GsonConverterFactory.create();
}

@Singleton
@Provides
@Named("ok-1")
OkHttpClient provideOkHttpClient1() {
    return new OkHttpClient.Builder()
            .connectTimeout(20, TimeUnit.SECONDS)
            .readTimeout(20, TimeUnit.SECONDS)
            .build();
}

@Singleton
@Provides
@Named("ok-2")
OkHttpClient provideOkHttpClient2() {
    return new OkHttpClient.Builder()
            .connectTimeout(60, TimeUnit.SECONDS)
            .readTimeout(60, TimeUnit.SECONDS)
            .build();
}

@Singleton
@Provides
RxJavaCallAdapterFactory provideRxJavaCallAdapterFactory() {
    return RxJavaCallAdapterFactory.create();
}

@Singleton
@Provides
@FirstApi …
Run Code Online (Sandbox Code Playgroud)

mvp android retrofit dagger-2

3
推荐指数
1
解决办法
2022
查看次数

产品过滤节点js + sequelize

我正在使用节点js + sequelize。我想按供应商,价格,交货选项等选定的选项来过滤产品的结果,但我不明白如何精确查询。

现在我正在执行此操作,但是此方法仅在选择所有过滤器(AND运算符)时才有效。如果用户仅选择1个过滤器,或选择几个过滤器,该怎么办?

    let vendor = req.query.vendor;
    let priceFrom = req.query.priceFrom;
    let priceTo = req.query.priceTo;
    let delivery = req.query.delivery

            Product.findAll({
                where: {
                    vendor_id: {
                        in: vendor
                    },
                    price: {
                        $between: [priceFrom, priceTo]
                    },
                    {
                    delivery: delivery 
                    }
                }
            }).then(products => {
                res.render('product', {products: products});
                console.log(products)
            });
Run Code Online (Sandbox Code Playgroud)

我看到现在只有一种方法可以使这种方法在每种情况下编写很多if-else语句。

mysql node.js sequelize.js

0
推荐指数
1
解决办法
650
查看次数

标签 统计

android ×2

dagger-2 ×2

mvp ×1

mysql ×1

node.js ×1

retrofit ×1

retrofit2 ×1

rx-java ×1

sequelize.js ×1