@@ -4,7 +4,8 @@ A easy to use api client that combines the power of Retrofit, Realm, Gson, Rxjav
4
4
#####Add to build.gradle
5
5
6
6
```
7
- compile 'io.fabianterhorst:apiclient:0.2'
7
+ compile 'io.fabianterhorst:apiclient:0.3'
8
+ compile 'io.fabianterhorst:apiclient-accountmanager:0.1'
8
9
compile 'io.fabianterhorst:apiclient-components:0.1'
9
10
```
10
11
@@ -19,8 +20,8 @@ public class Twitter extends ApiClient<TwitterApi> implements TwitterApi {
19
20
super(realm, TwitterApi.PARAM_API_KEY, apiKey, TwitterApi.class, TwitterApi.END_POINT);
20
21
}
21
22
22
- public static void init(Realm realm, String apiKey) {
23
- init(new Twitter(realm, apiKey));
23
+ public static void init(String apiKey) {
24
+ init(new Twitter(apiKey));
24
25
}
25
26
26
27
@Override
@@ -62,8 +63,11 @@ public class MyApplication extends Application {
62
63
@Override
63
64
public void onCreate() {
64
65
super.onCreate();
65
- Realm realm = Realm.getInstance(this);
66
- Twitter.init(realm, "0123456789");
66
+ RealmConfiguration config = new RealmConfiguration.Builder(this)
67
+ .deleteRealmIfMigrationNeeded()
68
+ .build();
69
+ Realm.setDefaultConfiguration(config);
70
+ Twitter.init("0123456789");
67
71
}
68
72
}
69
73
```
@@ -99,10 +103,10 @@ You can override the gson builder inside your api class and add custom deseriali
99
103
```
100
104
@Override
101
105
public GsonBuilder getGsonBuilder(GsonBuilder gsonBuilder) {
102
- registerRemoveNullListSerializer(gsonBuilder, new TypeToken<RealmList<MyFirstObject>>() {}, MyFirstObject.class)
103
- .registerRemoveNullListSerializer(gsonBuilder, new TypeToken<RealmList<MySecondObject>>() {}, MySecondObject.class)
104
- .registerRemoveNullListSerializer(gsonBuilder, new TypeToken<RealmList<MyThirdObject>>() {}, MyThirdObject.class);
105
- return gsonBuilder;
106
+ GsonUtils. registerRemoveNullListSerializer(gsonBuilder, new TypeToken<RealmList<MyFirstObject>>() {}, MyFirstObject.class);
107
+ GsonUtils .registerRemoveNullListSerializer(gsonBuilder, new TypeToken<RealmList<MySecondObject>>() {}, MySecondObject.class);
108
+ GsonUtils .registerRemoveNullListSerializer(gsonBuilder, new TypeToken<RealmList<MyThirdObject>>() {}, MyThirdObject.class);
109
+ return gsonBuilder;
106
110
}
107
111
```
108
112
@@ -121,7 +125,28 @@ You can override the ```getHttpUrlBuilder(HttpUrl.Builder builder)``` method fro
121
125
```
122
126
@Override
123
127
public HttpUrl.Builder getHttpUrlBuilder(HttpUrl.Builder builder) {
124
- return super.getHttpUrlBuilder(builder).addQueryParameter("lang", Locale.getDefault().getLanguage());
128
+ return addQueryParameter("lang", Locale.getDefault().getLanguage());
129
+ }
130
+ ```
131
+
132
+ #####How to use a authentication
133
+
134
+ The easiest way is to use the AuthUtils to add a authentication via the request builder for post parameters and headers or the http url builder for query parameter
135
+
136
+ myurl.com/api
137
+ ```
138
+ @Override
139
+ public Request.Builder getRequestBuilder(Request.Builder builder) {
140
+ return AuthUtils.addDefaultAuthentication(builder, getApiKey());
141
+ }
142
+ ```
143
+
144
+ myurl.com/api?apiKey=012345
145
+ ```
146
+ @Override
147
+ public HttpUrl.Builder getHttpUrlBuilder(HttpUrl.Builder builder) {
148
+ AuthUtils.addDefaultAuthentication(builder, "apiKey", getApiKey());
149
+ return builder.addQueryParameter("lang", Locale.getDefault().getLanguage());
125
150
}
126
151
```
127
152
0 commit comments