cloudinary / cloudinary/cloudinary_java
Make usage of http clients (apache, OkHttp, Jetty, Asynch) easier
- 主要语言
- 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 还没有评估数据。