如何实现动态 API 处理?

How do I implement dynamic API handling?

所以我正在做一个项目,其中有很多 API 将被使用,比如 5 个不同的,都来自不同的主机名。为此,我使用 Volley 来处理请求。现在我的问题是如何获得不同 API 产生的值,具有不同的 JSON 输出。

示例场景: 我需要从所有 API 中获取用户的名称,但它们在 API 响应中具有所有不同的标签。即

API 1(JSON 数据):

{
  data: {
    name: 'Sumname',

  }
}

API 2(JSON 数据):

{
  data: {
    user_name: 'Sumname'
  }
}

现在我需要在两个 API 上获取 'Sumname'(或用户名)。

我需要像这样发出多个 Volley 请求吗?

private void sumclass(){
        RequestQueue queue = Volley.newRequestQueue(MainActivity.this);
        String url = "URL";
        StringRequest sendQueue = new StringRequest(Request.Method.POST, url,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {

                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {

                    }
                }) {
            @Override
            protected Map<String, String> getParams() {

                Map<String, String> params = new HashMap<String, String>();
                params.put("value", "value");

                return params;
            }
        };

        queue.add(sendQueue);
}

每个 API 将被使用?或者有一个简单的方法吗?我通常只使用 1 API,所以我对这个问题不太了解。我做了一些研究,但我对结果不满意。

要解决您的问题或根据我的经验解决您的用例条件,您可以使用 Retrofit 库。

  1. 改装将为您提供动态 API 呼叫功能。

例如。假设你有两个 API 的 Api1 和 Api2

retrofit取基地址,剩下的地址就是你API的API路径。

假设您的 API 类似于 1.www.xyz.com/api12.www.xyz.com/api2

那么你的基地址就是www.xyz.com/,剩下的部分就是/api1

通过这种方式,您可以解决您的用例。

每个 API

的 function/method 会有所不同