birdeveloper / Rapi

We made retrofit more understandable !! RAPI

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Contributors Forks Stargazers Issues MIT License LinkedIn


Rapi Logo

Rapi

We made retrofit more understandable !! RAPI
Explore the docs »

View Demo · Report Bug · Request Feature

Table of Contents

About The Project

Rapi Explore Github

Rapi offers you a lot of innovations by shortening the steps that retrofit should take in a very short and concise way. It organizes the network requests in the background and easily adapts to the MVVM structure.

Built With

Getting Started

To get a local copy up and running follow these simple steps.

Prerequisites

This is an example of how to list things you need to use the software and how to install them. (already installed in the library)

  • retrofit
implementation 'com.squareup.retrofit2:retrofit:2.6.3'

Installation

To get a Git project into your build: Step 1. Add the JitPack repository to your build file. Add it in your root build.gradle at the end of repositories:

  allprojects {
    repositories {
      ...
      maven { url 'https://jitpack.io' }
    }
  }

Step 2. Add the dependency

dependencies {
          implementation 'com.github.birdeveloper:Rapi:1.0.0'
  }

Usage

Setup

        val headers: WeakHashMap<String, String> = WeakHashMap()
        headers["Authorization"] = "Bearer vF9dft4qmTFDfd27asWEgf"
        Rapi.init(this,Constants.BASE_URL, headers, 120)
        // context, base url, headers or null, timeout

GET Request

          Rapi.buider()
            .request("https://reqres.in/api/users/")
            .params("page",2)
            .success(object : ISuccess {
                override fun onSuccess(response: String) {
                    Log.d("onSuccess", response)
                }
            })
            .failure(object :IFailure{
                override fun onFailure() {
                    Log.d("onFailure", "yes")
                }
            })
            .error(object : IError{
                override fun onError(code: Int, msg: String) {
                    Log.d("onError", "code: $code  -----  msg: $msg")
                }

            })
            .build()
            .get()

POST Request

          Rapi.buider()
            .request("https://reqres.in/api/users/")
            .params("name","Görkem")
            .params("job","Android Developer")
            .success(object : ISuccess {
                override fun onSuccess(response: String) {
                    Log.d("onSuccess", response)
                }
            })
            .failure(object :IFailure{
                override fun onFailure() {
                    Log.d("onFailure", "yes")
                }
            })
            .error(object : IError{
                override fun onError(code: Int, msg: String) {
                    Log.d("onError", "code: $code  -----  msg: $msg")
                }

            })
            .build()
            .post()

POST RAW Request

        val jsonStr = "{\"name\":\"Görkem\",\"job\":\"Android Developer\"}"
        Rapi.buider()
            .request(URL_USERS)
            .raw(jsonStr)
            .success(object : ISuccess {
                override fun onSuccess(response: String) {
                    Log.d("onSuccess", response)
                }
            })
            .failure(object :IFailure{
                override fun onFailure() {
                    Log.d("onFailure", "yes")
                }
            })
            .error(object : IError{
                override fun onError(code: Int, msg: String) {
                    Log.d("onError", "code: $code  -----  msg: $msg")
                }

            })
            .build()
            .post()

PUT Request

        Rapi.buider()
            .request(Constants.URL_USER_ID)
            .params("name","Resul")
            .params("job","Software Developer")
            .success(object : ISuccess {
                override fun onSuccess(response: String) {
                    Log.d("onSuccess", response)
                }
            })
            .failure(object :IFailure{
                override fun onFailure() {
                    Log.d("onFailure", "yes")
                }
            })
            .error(object : IError{
                override fun onError(code: Int, msg: String) {
                    Log.d("onError", "code: $code  -----  msg: $msg")
                }

            })
            .build()
            .put()

DELETE Request

        Rapi.buider()
            .request(Constants.URL_USER_ID)
            .success(object : ISuccess {
                override fun onSuccess(response: String) {
                    Log.d("onSuccess", response)
                }
            })
            .failure(object :IFailure{
                override fun onFailure() {
                    Log.d("onFailure", "yes")
                }
            })
            .error(object : IError{
                override fun onError(code: Int, msg: String) {
                    Log.d("onError", "code: $code  -----  msg: $msg")
                }

            })
            .build()
            .delete()

DOWNLOAD Request

            /*
            IMPORTANT!!! Do not forget to write and read permission before discarding this request !!
            <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
            <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
            There are codes related to the permissions in the sample file.
             */
        Rapi.buider()
                .request(Constants.URL_DOWNLOAD)
                .dir(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).absolutePath)
                .extension("doc")
                .name("example.doc")
                .success(object : ISuccess {
                    override fun onSuccess(response: String) {
                        Log.d("onSuccess", response)
                    }
                })
                .failure(object :IFailure{
                    override fun onFailure() {
                        Log.d("onFailure", "yes")
                    }
                })
                .error(object : IError{
                    override fun onError(code: Int, msg: String) {
                        Log.d("onError", "code: $code  -----  msg: $msg")
                    }
                })
                .build()
                .download()

UPLOAD Request

            /*
            IMPORTANT!!! Do not forget to write and read permission before discarding this request !!
            <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
            <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
            There are codes related to the permissions in the sample file.
             */
        Rapi.buider()
                .request(Constants.URL_UPLOAD)
                .file(File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).absolutePath+"/example.jpeg"))
                .onRequest(object : IRequest{
                    override fun onRequestStart() {
                        Log.d("onRequestStart", "run")
                    }

                    override fun onRequestEnd() {
                        Log.d("onRequestEnd", "finish")
                    }

                })
                .success(object : ISuccess {
                    override fun onSuccess(response: String) {
                        Log.d("onSuccess", response)
                    }
                })
                .failure(object :IFailure{
                    override fun onFailure() {
                        Log.d("onFailure", "yes")
                    }
                })
                .error(object : IError{
                    override fun onError(code: Int, msg: String) {
                        Log.d("onError", "code: $code  -----  msg: $msg")
                    }
                })
                .build()
                .upload()

Roadmap

See the open issues for a list of proposed features (and known issues).

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b birdeveloper/Rapi)
  3. Commit your Changes (git commit -m 'Add some Rapi')
  4. Push to the Branch (git push origin birdeveloper/Rapi)
  5. Open a Pull Request

License

Distributed under the MIT License. See LICENSE for more information.

Contact

Görkem KARA - @gorkemkara - email

Project Link: https://github.com/birdeveloper/rapi

Acknowledgements

About

We made retrofit more understandable !! RAPI

License:MIT License


Languages

Language:Kotlin 74.6%Language:Java 25.4%