Coder Social home page Coder Social logo

Comments (6)

aappddeevv avatar aappddeevv commented on May 18, 2024

I think the best you might be able to do is attach a set of generic properties (very untyped in general) that provides hints to the backend if that backend supports it.

But I think this would need to be per-request so that per-request "hints" would work. There may be an easy way to accommodate this somehow by using a more clever .send method that takes a "hint" object, specific to the backend for those that just gotta have it. That way people that don't need portability fo the actual code can do something backend-specific each time. I find that for libraries like sttp, as long as its API is portable in concept, its close enough that I benefit from using it in multiple programs but where I need to be specific to a platform, I need to do that.

from sttp.

adamw avatar adamw commented on May 18, 2024

@aappddeevv the "hints" you mention are already there: each request carries a tags: Map[String, Any], which is used e.g. by the brave backend to carry the trace id.

from sttp.

aappddeevv avatar aappddeevv commented on May 18, 2024

Oh...however, I don't see that on the async backend, which is pretty much all I use these days.

from sttp.

adamw avatar adamw commented on May 18, 2024

@aappddeevv hm ... maybe I misunderstood you then, that's a field on the Request data structure, so is available in any backend in the send method :)

from sttp.

aappddeevv avatar aappddeevv commented on May 18, 2024

Yes. If its one thing I have learned, its crazy HTTP request wild-west world out there. You could also overload .send to be backend specific with a hints object so that at least when sending, you have statically typed "options" for sending. That ties you to a backend, but I think that this is Ok because when you need it, you need it.

from sttp.

adamw avatar adamw commented on May 18, 2024

This can be implemented independently of sttp, in a more general way: we don't need to do anything HTTP-specific, but to rate-limit an F[T] effect. Similar reasoning applies as in #23. Also in this case, we've documented how to use an external rate limiter: https://sttp.readthedocs.io/en/latest/backends/custom.html#example-backend-with-rate-limiter.

from sttp.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.