Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use an external HTTP universal interface instead of rspotify-http #234

Open
marioortizmanero opened this issue Jul 15, 2021 · 2 comments
Open
Labels
enhancement New feature or request
Milestone

Comments

@marioortizmanero
Copy link
Collaborator

marioortizmanero commented Jul 15, 2021

Is your feature request related to a problem? Please describe.

Ever since we abstracted away the HTTP clients into the BaseHttpClient trait I've wanted to consider making it a public crate outside of rspotify. The current rspotify-http should just be a dependency, and worked on externally. Separating the module into the rspotify-crate was the first step. Not only would we actually separate http logic from spotify's API, but also have support from the community and reduce the maintenance work needed for Rspotify.

This isn't really a top priority right now as it might be a bit complicated, but ideally it should be released before v0.11 in order to avoid confusion.

Describe the solution you'd like

I think the best way to handle the HTTP client abstraction would be to create a separate crate, as I can imagine it's a frequent problem for other API wrappers like us and we could do with some support from other developers outside of Rspotify. This way it'll be much easier to add new clients.

After investigating a bit I've found the following already-existing crates:

  • fMeow/uclient, from the creator of maybe_async, just what we're looking for. Problems: (1) seems a bit abandoned currently, (2) uses maybe_async, so Avoiding conflicting features; allow multiple HTTP clients at once #221 remains unsolved. @fMeow, do you plan on maintaining the crate any further?
  • http-client: "Types and traits for http clients", very similar and well maintained. Not sure if it's the exact same as uclient, I should try it out. Problems: I think it only supports asynchronous clients currently.

Other crates that implement HTTP interfaces with maybe-async:

@marioortizmanero marioortizmanero added the enhancement New feature or request label Jul 15, 2021
@marioortizmanero
Copy link
Collaborator Author

We should probably do this after #221, since it may change the way Http clients work.

@marioortizmanero marioortizmanero added this to the v1.0 milestone Dec 29, 2022
@github-actions
Copy link

github-actions bot commented Jul 3, 2023

Message to comment on stale issues. If none provided, will not mark issues stale

@github-actions github-actions bot added the Stale label Jul 3, 2023
@github-actions github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale Jul 10, 2023
@ramsayleung ramsayleung removed the Stale label Dec 8, 2023
@ramsayleung ramsayleung reopened this Dec 8, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants