Skip to main content

http_interop 3.0.0 copy "http_interop: ^3.0.0" to clipboard
http_interop: ^3.0.0 copied to clipboard

A thin abstraction layer for interoperability between HTTP client/server implementations.

http_interop #

A lightweight package for interoperability between HTTP client and server implementations in Dart. It defines Request and Response classes and a shared client/server Handler type: Future<Response> Function(Request request).

Motivation #

HTTP APIs are a common way for clients and servers to communicate. The pub.dev API is one example.

Building an API client on a specific HTTP implementation can tightly couple your library to that implementation. This can make unit tests depend on complex mocks or require end-to-end tests, limiting coverage and making tests harder to maintain.

Solution #

Implement a Handler function to separate your API logic from the underlying HTTP implementation. Request and Response are simple Dart classes that you can construct and inspect directly in tests.

Pros #

  • Decouples application logic from the underlying HTTP implementation.
  • Simplifies tests for both clients and servers.
  • Allows tests to run without an HTTP stack.
  • Lets users choose or switch HTTP implementations.

Cons #

  • Provides limited support for streaming APIs, long polling, and WebSockets.
  • Adds a dependency to your library.
  • Requires consumers to depend on both the interop package and an adapter package.

Existing implementations #

Projects using http_interop #

  • json_api: a JSON:API client and server library.
4
likes
160
points
1.14k
downloads

Documentation

API reference

Publisher

verified publisherkarapetov.com

Weekly Downloads

A thin abstraction layer for interoperability between HTTP client/server implementations.

Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

collection

More

Packages that depend on http_interop