cloudinary / cloudinary/cloudinary_java

Make usage of http clients (apache, OkHttp, Jetty, Asynch) easier

未关闭
#343 6 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
Java
星标
175
派生
113
PR 合并指标
30 天内没有已合并 PR

描述

## Feature request for Cloudinary Java SDK

General idea: making the settings of http client library to be used easier for consumers of the SDK,
by enabling configuration via `new Cloudinary(...)` constructor.

## Explain your use case
I want to use plain java http client, instead of Apache one.

## Describe the problem you’re trying to solve
In `Cloudinary.loadStrategies()` there's a fixed list of strings with classnames, which a consumer of the SDK can't change.
This means even if I provide my own strategy, this will not loaded and I still being forced to add dependency for apache http.
(hint: technically: when the class `om.cloudinary.http5.ApiStrategy` is not found, an `UnknownError` is thrown, which is bad)

Also this brings me to another point: the constructor of Cloudinary should better accept Configuration object, instead of `Map config`. It's very annoying for me as an SDK user, to provide a Map with configs.
I get no auto-completion on Maps and must find details in either source code or documentation (which is just cumbersome).
So I don't know immediately what config options are available, that I could e.g. provide HTTP proxy address.

(Sorry, if I mix two problems here ... I came to these two, when I thought about a solution proposal, below)

## Do you have a proposed solution?
YES.
The constructor of Cloudinary.class (or better the Configuration.class) could have some new field `apiStrategy` of type `class`. And another one for the UploadStrategy.
Then, the loadStragies() method will not load by name (which can contain typos), but rather by class(type) directly.

On the second problem, adding a new (overloaded) constructor to Cloudinary is easy to add, but that's not sufficient.
Ideally, the Configuration class will provide a convenient Builder function, so users of the SDK are better guided,
and plausibility checks can easier be implemented.

I'm happy to provide a PR, if this resonates with you.

贡献指南

这个仓库没有索引到贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。