MCPcopy Index your code
hub / github.com/JessYanCoding/RetrofitUrlManager

github.com/JessYanCoding/RetrofitUrlManager @v1.4.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.4.0 ↗ · + Follow
127 symbols 301 edges 19 files 71 documented · 56%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

RetrofitUrlManager

Jcenter Build Status Android Arsenal API License Author QQ-Group

Let Retrofit support multiple baseUrl and can be change the baseUrl at runtime.

Overview

overview

Introduction

以最简洁的 ApiRetrofit 同时支持多个 BaseUrl 以及动态改变 BaseUrl.

Notice

框架的分析和思路

更完整的 Sample

Download

 implementation 'me.jessyan:retrofit-url-manager:1.4.0'

Usage

Initialize

 // 构建 OkHttpClient 时,将 OkHttpClient.Builder() 传入 with() 方法,进行初始化配置
 OkHttpClient = RetrofitUrlManager.getInstance().with(new OkHttpClient.Builder())
                .build();

Step 1

 public interface ApiService {
     @Headers({"Domain-Name: douban"}) // 加上 Domain-Name header
     @GET("/v2/book/{id}")
     Observable<ResponseBody> getBook(@Path("id") int id);
}

Step 2

 // 可在 App 运行时,随时切换 BaseUrl (指定了 Domain-Name header 的接口)
 RetrofitUrlManager.getInstance().putDomain("douban", "https://api.douban.com");

If you want to change the global BaseUrl

 // 全局 BaseUrl 的优先级低于 Domain-Name header 中单独配置的,其他未配置的接口将受全局 BaseUrl 的影响
 RetrofitUrlManager.getInstance().setGlobalDomain("your BaseUrl");

Donate

alipay

About Me

License

 Copyright 2017, jessyan

   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.

Extension points exported contracts — how you extend this code

UrlParser (Interface)
================================================ Url解析器 Created by JessYan on 17/07/2017 17:44 <a href="mailto:jess. [8 …
manager/src/main/java/me/jessyan/retrofiturlmanager/parser/UrlParser.java
OneApiService (Interface)
================================================ Created by JessYan on 19/07/2017 11:49 <a href="mailto:jess.yan.effort@
app/src/main/java/me/jessyan/retrofiturlmanager/demo/api/OneApiService.java
onUrlChangeListener (Interface)
================================================ Url 监听器 Created by JessYan on 20/07/2017 14:18 <a href="mailto:jess [2 …
manager/src/main/java/me/jessyan/retrofiturlmanager/onUrlChangeListener.java
Api (Interface)
================================================ Created by JessYan on 18/07/2017 17:01 <a href="mailto:jess.yan.effort@
app/src/main/java/me/jessyan/retrofiturlmanager/demo/api/Api.java
Cache (Interface)
================================================ 缓存 @see LruCache Created by JessYan on 25/09/2017 16:36 <a href="mailt [1 …
manager/src/main/java/me/jessyan/retrofiturlmanager/cache/Cache.java
TwoApiService (Interface)
================================================ Created by JessYan on 19/07/2017 11:50 <a href="mailto:jess.yan.effort@
app/src/main/java/me/jessyan/retrofiturlmanager/demo/api/TwoApiService.java
ThreeApiService (Interface)
================================================ Created by JessYan on 19/07/2017 11:50 <a href="mailto:jess.yan.effort@
app/src/main/java/me/jessyan/retrofiturlmanager/demo/api/ThreeApiService.java

Core symbols most depended-on inside this repo

getInstance
called by 16
manager/src/main/java/me/jessyan/retrofiturlmanager/RetrofitUrlManager.java
get
called by 15
manager/src/main/java/me/jessyan/retrofiturlmanager/cache/Cache.java
checkNotNull
called by 13
manager/src/main/java/me/jessyan/retrofiturlmanager/Utils.java
size
called by 7
manager/src/main/java/me/jessyan/retrofiturlmanager/cache/Cache.java
putDomain
called by 6
manager/src/main/java/me/jessyan/retrofiturlmanager/RetrofitUrlManager.java
put
called by 6
manager/src/main/java/me/jessyan/retrofiturlmanager/cache/Cache.java
getItemSize
called by 5
manager/src/main/java/me/jessyan/retrofiturlmanager/cache/LruCache.java
remove
called by 5
manager/src/main/java/me/jessyan/retrofiturlmanager/cache/Cache.java

Shape

Method 105
Class 15
Interface 7

Languages

Java100%

Modules by API surface

manager/src/main/java/me/jessyan/retrofiturlmanager/RetrofitUrlManager.java32 symbols
app/src/main/java/me/jessyan/retrofiturlmanager/demo/MainActivity.java23 symbols
manager/src/main/java/me/jessyan/retrofiturlmanager/cache/LruCache.java15 symbols
manager/src/main/java/me/jessyan/retrofiturlmanager/cache/Cache.java9 symbols
app/src/main/java/me/jessyan/retrofiturlmanager/demo/NetWorkManager.java9 symbols
manager/src/main/java/me/jessyan/retrofiturlmanager/parser/SuperUrlParser.java5 symbols
manager/src/main/java/me/jessyan/retrofiturlmanager/parser/DomainUrlParser.java4 symbols
manager/src/main/java/me/jessyan/retrofiturlmanager/parser/AdvancedUrlParser.java4 symbols
manager/src/main/java/me/jessyan/retrofiturlmanager/Utils.java4 symbols
manager/src/main/java/me/jessyan/retrofiturlmanager/parser/UrlParser.java3 symbols
manager/src/main/java/me/jessyan/retrofiturlmanager/parser/DefaultUrlParser.java3 symbols
manager/src/main/java/me/jessyan/retrofiturlmanager/onUrlChangeListener.java3 symbols

For agents

$ claude mcp add RetrofitUrlManager \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact