julianfalcionelli / SimpleRESTClientHandler

The easiest way to make http calls
Apache License 2.0
18 stars 1 forks source link

SimpleRESTClientHandler

Android Arsenal

SimpleRESTClientHandler is an Open Source Android library that allows developers to easily make request to a REST server usign VOLLEY and GSON. Using GSON as dependency SimpleRESTClientHandler parse the responses automatically to the Model of your interest.

Setup

dependencies {
    compile 'julianfalcionelli:SimpleRESTClientHandler:1.2'
}

Initialize the service

Initialize the RestClientManager in your Application class in the #onCreate() method.

RestClientManager.initialize(getApplicationContext()).enableDebugLog(true);

The enableDebugLog method allows you too see the request information in the console.

Remember to have the Internet Permission in the manifest

<uses-permission android:name="android.permission.INTERNET" />

Simple Example

JSON Request

To make a request that returns a JSON object you need to call the makeJsonRequest after obtaining RestClientManager instance. Required parameters are the request method (POST, GET, PUT, DELETE), the URL of the server endpoint, and RequestHanlder object.

You can also pass new headers to the request in a Map <String, String> as an Authorization header. We also recommend spending a tag request to cancel the specific request for some reasons.

RestClientManager.getInstance().makeJsonRequest(Request.Method.POST, url, 
    new RequestHandler<>(new RequestCallbacks<ResponseModel, ErrorModel>() {
        @Override
        public void onRequestSuccess(ResponseModel response) {

        }

        @Override
        public void onRequestError(ErrorModel error) {

        }
    }, parameters));

To create an instance of Request Handler you need to spend a instance of Request Callbacks. This class has two types, the model answer at the first set and the second type defines the model error. If you do not want to analyze the response or error just pass a Object in each of the types.

Remember that the classes passed to the Request Callbacks object must be use GSON, where each of the values assigned to GSON must correspond to the parameters sent by the server.

The Request Callbacks object has four methods:

You can pass to the Request Handler object the parameters. The parameters can be a bundle or any object that use GSON, and automatically the library will parse the object to a valid json.

JSON Array Request

To make a request that returns a JSON Array you need to call the makeJsonArrayRequest.

RestClientManager.getInstance().makeJsonArrayRequest(Request.Method.GET, url, 
    new RequestHandler<>(new RequestCallbacks<List<ResponseItemModel>, ErrorModel>() {
        @Override
        public void onRequestSuccess(List<ResponseItemModel> response) {

        }

        @Override
        public void onRequestError(ErrorModel error) {

        }
    }, parameters));

Multipart Request

To make a mutipart request call the makeMultipartJsonRequest method if the response is a JSONObject or call the makeMultipartJsonArrayRequest method if the response is a JSON Array.

To pass files to the RequestHandler call the setFileParameters method passing a Map<String, String> where the key represent the file identifier and the value the file path in the device.

RestClientManager.getInstance().makeMultipartJsonRequest(Request.Method.POST, url, 
    new RequestHandler<>(new RequestCallbacks<ResponseModel, ErrorModel>() {
        @Override
        public void onRequestSuccess(ResponseModel response) {

        }

        @Override
        public void onRequestError(ErrorModel error) {

        }
    }, parameters).setFileParameters(filesMap));
RestClientManager.getInstance().makeMultipartJsonArrayRequest(Request.Method.GET, url, 
    new RequestHandler<>(new RequestCallbacks<List<ResponseItemModel>, ErrorModel>() {
        @Override
        public void onRequestSuccess(List<ResponseItemModel> response) {

        }

        @Override
        public void onRequestError(ErrorModel error) {

        }
    }, parameters).setFileParameters(filesMap));

News

License

Copyright 2016 Julián Falcionelli

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.