The Scala HTTP client you always wanted!
APACHE-2.0 License
Bot releases are hidden (Show)
Published by adamw about 4 years ago
This is a preview release, containing most of the functionality planned for sttp v3. The code passes all tests, however the API might change.
sttp client v3 uses a new package name (sttp.client3
) and organization (com.softwaremill.sttp.client3
). This way old and new sttp client versions can be used side-by-side. Make sure to update your imports and build dependencies!
Documentation is updated for the new version.
Breaking changes since v2:
SttpBackend
traitThe trait now has 2, instead of 3 parameters. The "default" case of a backend with no additional capabilities changed:
SttpBackend[F, Nothing, NothingT] --> SttpBackend[F, Any]
The second type parameter now contains a list of supported additional capabilities. This can include:
Streams
WebSockets
Finally, the type of supported streams is not given directly, but wrapped in a Streams
object. For example, the types of the AkkaHttpBackend
and AsyncHttpClientZioBackend
backends now are:
SttpBackend[Future, AkkaStreams with WebSockets]
SttpBackend[Task, ZioStreams with WebSockets]
Request
typeThe type describing a request has undergone similar changes, with the last type parameter specifying the requirements that a backend must meet in order of the request to be sent. The "default" description of a request which doesn't use websockets or streams changed:
Request[T, Nothing] -> Request[T, Any]
Similarly, the type of ResponseAs
changed.
The Request.send()
method, which used an implicit SttpBackend
is deprecated. Instead, use Request.send(backend)
, giving the backend explicitly.
SttpBackendStub
thenRespondWrapped -> thenRespondF
ResponseError
-> ResponseException
, but type aliases are providedResponseException
is parametrised with library-specific deserialisation exception type and http-error type. What previous was ResponseError[E]
now would be ResponseException[String, E]
streamBody
sets application/octet-stream as the content type by defaultglobal
, the EC backing the provided actor system is usedsend
method has been moved from SttpClient
to the package (for consistency with other zio libraries)Published by adamw about 4 years ago
This is a preview release, containing most of the functionality planned for sttp v3. The code passes all tests, however the API might change.
sttp client v3 uses a new package name (sttp.client3
) and organization (com.softwaremill.sttp.client3
). This way old and new sttp client versions can be used side-by-side. Make sure to update your imports and build dependencies!
Breaking changes since v2:
SttpBackend
traitThe trait now has 2, instead of 3 parameters. The "default" case of a backend with no additional capabilities changed:
SttpBackend[F, Nothing, NothingT] --> SttpBackend[F, Any]
The second type parameter now contains a list of supported additional capabilities. This can include:
Streams
WebSockets
Finally, the type of supported streams is not given directly, but wrapped in a Streams
object. For example, the types of the AkkaHttpBackend
and AsyncHttpClientZioBackend
backends now are:
SttpBackend[Future, AkkaStreams with WebSockets]
SttpBackend[Task, ZioStreams with WebSockets]
Request
typeThe type describing a request has undergone similar changes, with the last type parameter specifying the requirements that a backend must meet in order of the request to be sent. The "default" description of a request which doesn't use websockets or streams changed:
Request[T, Nothing] -> Request[T, Any]
Similarly, the type of ResponseAs
changed.
The Request.send()
method, which used an implicit SttpBackend
is deprecated. Instead, use Request.send(backend)
, giving the backend explicitly.
SttpBackendStub
thenRespondWrapped -> thenRespondF
ResponseError
-> ResponseException
, but type aliases are providedResponseException
is parametrised with library-specific deserialisation exception type and http-error type. What previous was ResponseError[E]
now would be ResponseException[String, E]
streamBody
sets application/octet-stream as the content type by defaultglobal
, the EC backing the provided actor system is usedsend
method has been moved from SttpClient
to the package (for consistency with other zio libraries)Published by adamw about 4 years ago
This is a preview release, containing most of the functionality planned for sttp v3. The code passes all tests, however the API might change.
Breaking changes since v2:
SttpBackend
traitThe trait now has 2, instead of 3 parameters. The "default" case of a backend with no additional capabilities changed:
SttpBackend[F, Nothing, NothingT] --> SttpBackend[F, Any]
The second type parameter now contains a list of supported additional capabilities. This can include:
Streams
WebSockets
Finally, the type of supported streams is not given directly, but wrapped in a Streams
object. For example, the types of the AkkaHttpBackend
and AsyncHttpClientZioBackend
backends now are:
SttpBackend[Future, AkkaStreams with WebSockets]
SttpBackend[Task, ZioStreams with WebSockets]
Request
typeThe type describing a request has undergone similar changes, with the last type parameter specifying the requirements that a backend must meet in order of the request to be sent. The "default" description of a request which doesn't use websockets or streams changed:
Request[T, Nothing] -> Request[T, Any]
Similarly, the type of ResponseAs
changed.
The Request.send()
method, which used an implicit SttpBackend
is deprecated. Instead, use Request.send(backend)
, giving the backend explicitly.
SttpBackendStub
thenRespondWrapped -> thenRespondF
ResponseError
-> ResponseException
, but type aliases are providedResponseException
is parametrised with library-specific deserialisation exception type and http-error type. What previous was ResponseError[E]
now would be ResponseException[String, E]
streamBody
sets application/octet-stream as the content type by defaultglobal
, the EC backing the provided actor system is usedsend
method has been moved from SttpClient
to the package (for consistency with other zio libraries)Published by adamw about 4 years ago
This is a preview release, containing most of the functionality planned for sttp v3. The code passes all tests, however the API might change.
Breaking changes since v2:
SttpBackend
traitThe trait now has 2, instead of 3 parameters. The "default" case of a backend with no additional capabilities changed:
SttpBackend[F, Nothing, NothingT] --> SttpBackend[F, Any]
The second type parameter now contains a list of supported additional capabilities. This can include:
Streams
WebSockets
Finally, the type of supported streams is not given directly, but wrapped in a Streams
object. For example, the types of the AkkaHttpBackend
and AsyncHttpClientZioBackend
backends now are:
SttpBackend[Future, AkkaStreams with WebSockets]
SttpBackend[Task, ZioStreams with WebSockets]
Request
typeThe type describing a request has undergone similar changes, with the last type parameter specifying the requirements that a backend must meet in order of the request to be sent. The "default" description of a request which doesn't use websockets or streams changed:
Request[T, Nothing] -> Request[T, Any]
Similarly, the type of ResponseAs
changed.
The Request.send()
method, which used an implicit SttpBackend
is deprecated. Instead, use Request.send(backend)
, giving the backend explicitly.
SttpBackendStub
thenRespondWrapped -> thenRespondF
ResponseError
-> ResponseException
, but type aliases are providedResponseException
is parametrised with library-specific deserialisation exception type and http-error type. What previous was ResponseError[E]
now would be ResponseException[String, E]
streamBody
sets application/octet-stream as the content type by defaultglobal
, the EC backing the provided actor system is usedsend
method has been moved from SttpClient
to the package (for consistency with other zio libraries)Published by adamw about 4 years ago
This is a preview release, containing most of the functionality planned for sttp v3. The code passes all tests, however the API might change.
Breaking changes since v2:
SttpBackend
traitThe trait now has 2, instead of 3 parameters. The "default" case of a backend with no additional capabilities changed:
SttpBackend[F, Nothing, NothingT] --> SttpBackend[F, Any]
The second type parameter now contains a list of supported additional capabilities. This can include:
Streams
WebSockets
Finally, the type of supported streams is not given directly, but wrapped in a Streams
object. For example, the types of the AkkaHttpBackend
and AsyncHttpClientZioBackend
backends now are:
SttpBackend[Future, AkkaStreams with WebSockets]
SttpBackend[Task, ZioStreams with WebSockets]
Request
typeThe type describing a request has undergone similar changes, with the last type parameter specifying the requirements that a backend must meet in order of the request to be sent. The "default" description of a request which doesn't use websockets or streams changed:
Request[T, Nothing] -> Request[T, Any]
Similarly, the type of ResponseAs
changed.
The Request.send()
method, which used an implicit SttpBackend
is deprecated. Instead, use Request.send(backend)
, giving the backend explicitly.
SttpBackendStub
thenRespondWrapped -> thenRespondF
ResponseError
-> ResponseException
, but type aliases are providedResponseException
is parametrised with library-specific deserialisation exception type and http-error type. What previous was ResponseError[E]
now would be ResponseException[String, E]
streamBody
sets application/octet-stream as the content type by defaultglobal
, the EC backing the provided actor system is usedPublished by adamw over 4 years ago
com.softwaremill.sttp
to com.softwaremill.sttp.client
(organization)com.softwaremill.sttp
to sttp.client
(see #288)sttp
to basicRequest
asString
now is an Either[String, String]
not a String
(no assumptions as to the error type)Either[ResponseError, B]
bodySee also:
F[Unit]
- watch out if you are using lazy wrappers!StatusCode
is a proper typeHeader
is a proper typeMultipart
renamed to Part and generifiedasFile(overwrite)
- removed the overwire
parameterQueryFragment(Encoding)
in Uri
renamed to QuerySegment(Encoding)
Uri.parse
, Uri.apply
removed, replaced with safeApply
uri"..."
without scheme throws exceptionSttpBackendStub
: instantiated using .stub on "real" backend companion object, instead of using an instance of the "real" backendPublished by adamw almost 5 years ago
com.softwaremill.sttp
to com.softwaremill.sttp.client
(organization)com.softwaremill.sttp
to sttp.client
(see #288)sttp
to basicRequest
asString
now is an Either[String, String]
not a String
(no assumptions as to the error type)Either[ResponseError, B]
bodySee also: sttp2: an overview of proposed changes and Websockets in Scala using sttp
F[Unit]
- watch out if you are using lazy wrappers!StatusCode
is a proper typeHeader
is a proper typeMultipart
renamed to Part and generifiedasFile(overwrite)
- removed the overwire
parameterQueryFragment(Encoding)
in Uri
renamed to QuerySegment(Encoding)
Uri.parse
, Uri.apply
removed, replaced with safeApply
This release contains three major changes:
some modules are now published for 2.13: core
(jvm & js), akka-http-backend
, scalaz
, async-http-client-future-backend
, async-http-client-scalaz-backend
, okhttp-backend
, json-common
, circe
, json4s
, spray-json
, play-json
, brave-backend
, prometheus-backend
one of the overload of the RequestT.cookies
method now accepts a Iterable[Cookie]
instead of a Seq[Cookie]
.
the async-http-client-cats
backend now requires an additional ContextShift[F]
. This is needed to shift to another threadpool after sending a request (see https://github.com/softwaremill/sttp/issues/217). Similarly, the -monix
backends now shift to the default threadpool after send()
.
FetchBackend
and FetchMonixBackend
: http://sttp.readthedocs.io/en/latest/backends/javascript/fetch.html
String
by default. See Response.rawErrorBody
and Response.body
multipartFile
builder method instead of multipart
Published by adamw about 7 years ago