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

🎁 1.0.0 Wishlist #129

Closed
5 of 9 tasks
teamon opened this issue Oct 20, 2017 · 5 comments
Closed
5 of 9 tasks

🎁 1.0.0 Wishlist #129

teamon opened this issue Oct 20, 2017 · 5 comments
Milestone

Comments

@teamon
Copy link
Member

teamon commented Oct 20, 2017

I'd like to start a wishlist for 1.0 release. It should include any last breaking changes before moving into proper semver for future releases.

Please comment if you'd like tesla to have (or drop) something in the near future.

Here are mine:

  • New: Cache middleware - I think we should have a decent HTTP cache middleware (like faraday-http-cache) with pluggable backend (a simple interface of get/put) while handling all of the HTTP cache stuff
  • Breaking: Drop aliases - it is not widely used nor documented feature, aliases were never kept up to date and with current implementation they add a compile-time link from tesla builder to all adapters and middlewares. And there is no way to make them work for any custom middleware.
  • Breaking: Drop support for old elixir releases - Supporting 1.3 is starting to cause issues, maybe it should be dropped. Maybe.
  • Breaking: Support non-unique headers - Unique-key map is NOT a correct data structure for headers. Example issues: Set-cookie headers get overridden #37 and Sending back cookies #155
  • (Maybe) Breaking: Better Logger - Unified Logger & DebugLogger.
  • New: KeepRequest middleware - KeepRequest middleware #156 (good test for ensuring opts are propagated correctly)
  • New: init/1 - Compile-time callback for middlewares
  • Breaking: Return :ok/:error tuples by default - add get! versions
  • New: Global middleware - allow adding global middleware (think instrumentation)
@teamon teamon added this to the 1.0.0 milestone Oct 20, 2017
@joshuataylor
Copy link

Cache middleware would be amazing, this help a lot when developing against APIs that have a cache timer and you don't want to hammer their APIs.

@emerleite
Copy link
Contributor

About cache, We're using a simple solution that will evolve to something like this. Feedbacks are wellcome.

https://github.com/emerleite/tesla_cache

@joshuataylor
Copy link

For cache,what I'm doing is reading the response headers for when the cache expires, then storing it with Cachex until then. A good API should return the cache timer (if the output is cached).

Otherwise storing on your end is going to be tricky as you might get stale data.

@teamon
Copy link
Member Author

teamon commented Mar 14, 2018

All the breaking changes are now available in 1.0 branch. New features will be moved into 1.1 milestone.

@teamon
Copy link
Member Author

teamon commented Mar 30, 2018

tesla 1.0.0-beta.1 is out! Additional features has been moved into 1.1 milestone.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants