retrofit v2.0.0-beta3 Release Notes
Release Date: 2016-01-05 // over 8 years ago-
- New: All classes have been migrated to the
retrofit2.*
package name. The Maven groupId is nowcom.squareup.retrofit2
. This is in accordance with the Java Interoperability Policy for Major Version Updates. With this change Retrofit 2.x can coexiest with Retrofit 1.x in the same project. - New: Update to use the OkHttp 3 API and OkHttp 3.0.0-RC1 or newer is now required. Similar to the previous
point, OkHttp has a new package name (
okhttp3.*
) and Maven groupId (com.squareup.okhttp3
) which allow it to coexist with OkHttp 2.x in the same project. - New: String converters allow for custom serialization of parameters that end up as strings (such as
@Path
,@Query
,@Header
, etc.).Converter.Factory
has a newstringConverter
method which receives the parameter type and annotations and can return a converter for that type. This allows providing custom rendering of types likeDate
,User
, etc. to a string before being used for its purpose. A default converter will calltoString()
for any type which retains the mimics the previous behavior. - New: OkHttp's
Call.Factory
type is now used as the HTTP client rather than using theOkHttpClient
type directly (OkHttpClient
does implementCall.Factory
). AcallFactory
method has been added to bothRetrofit.Builder
andRetrofit
to allow supplying alternate implementations of an HTTP client. Theclient(OkHttpClient)
method onRetrofit.Builder
still exists as a convenience. - New:
isExecuted()
method returns whether aCall
has been synchronously or asynchronously executed. - New:
isCanceled()
method returns whether aCall
has been canceled. Use this inonFailure
to determine whether the callback was invoked from cancellation or actual transport failure. - New:
converter-scalars
module provides aConverter.Factory
for convertingString
, the 8 primitive types, and the 8 boxed primitive types astext/plain
bodies. Install this before your normal converter to avoid passing these simple scalars through, for example, a JSON converter. - New:
Converter.Factory
methods now receive aRetrofit
instance which also now has methods for querying the next converter for a given type. This allows implementations to delegate to others and provide additional behavior without complete reimplementation. - New:
@OPTIONS
annotation more easily allows for making OPTIONS requests. - New:
@Part
annotation now supportsList
and array types. - New: The
@Url
annotation now allows usingjava.net.URI
orandroid.net.Uri
(in addition toString
) as parameter types for providing relative or absolute endpoint URLs dynamically. - New: The
retrofit-mock
module has been rewritten with a newBehaviorDelegate
class for implementing fake network behavior in a local mock implementation of your service endpoints. Documentation and more tests are forthcoming, but theSimpleMockService
demonstrates its use for now. - Fix: Forbid Retrofit's
Response
type and OkHttp'sResponse
type as the response body type given to aCall
(i.e.,Call<Response>
). OkHttp'sResponseBody
type is the correct one to use when the raw body contents are desired. - Fix: The Gson converter now respects settings on the supplied
Gson
instance (such asserializeNulls
). This requires Gson 2.4 or newer. - The Wire converter has been updated to the Wire 2.0 API.
- The change in 2.0.0-beta2 which provided the
Retrofit
instance to theonResponse
callback ofCallback
has been reverted. There are too many edge cases around providing theRetrofit
object in order to allow deserialization of the error body. To accommodate this use case, pass around theRetrofit
response manually or implement a customCallAdapter.Factory
does so automatically.
- New: All classes have been migrated to the