编写完成封装好的api接口怎么使用

334 阅读4分钟

image.png

以下是一般情况下使用封装好的 API 接口的基本步骤:

1. 了解 API 接口文档

首先要获取 API 提供方给出的详细接口文档。文档中通常会包含以下关键信息:

  • 接口地址(URL) :明确请求要发送到的具体网络位置,例如 https://api.example.com/user/info 这样的形式,不同功能的接口对应不同的地址。

  • 请求方法:常见的有 GET(用于获取数据)、POST(用于提交数据,比如创建新资源等)、PUT(用于更新资源)、DELETE(用于删除资源)等,要清楚针对每个接口该用哪种请求方法来操作。

  • 请求参数说明

    • 如果是 GET 请求,参数一般会附在 URL 后面,形如 https://api.example.com?param1=value1&param2=value2,文档会说明每个参数的含义、数据类型(如字符串、数字等)以及是否必填等情况。
    • 若是 POST 等请求,会说明请求体中参数的格式(比如 JSON 格式、表单格式等)以及具体包含哪些参数。
  • 响应数据格式及含义:告知调用接口后返回的数据是什么样的结构,例如是以 JSON 格式返回,其中包含哪些字段,每个字段代表什么意义,便于后续对返回结果进行解析和处理。

2. 选择合适的编程语言及相关库

根据你的项目需求和开发环境,选择对应的编程语言(如 Python、Java、JavaScript 等),然后利用该语言中用于网络请求的库。

  • Python

    •   # coding:utf-8
        """
        Compatible for python2.x and python3.x
        requirement: pip install requests
        """
        from __future__ import print_function
        import requests
        # 请求示例 url 默认请求参数已经做URL编码
        url = "https://taobao/item_get/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&num_iid=652874751412&is_promotion=1"
        headers = {
            "Accept-Encoding": "gzip",
            "Connection": "close"
        }
        if __name__ == "__main__":
            r = requests.get(url, headers=headers)
            json_obj = r.json()
            print(json_obj)
      

      java:可以使用 java.net.HttpURLConnection (原生方式,代码相对复杂些),也可以使用一些第三方库如 OkHttp 等简化操作。以下是使用 OkHttp 进行 GET 请求的简单示例:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.URL;
import java.nio.charset.Charset;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.PrintWriter;
import java.net.URLConnection;

public class Example {
	private static String readAll(Reader rd) throws IOException {
		StringBuilder sb = new StringBuilder();
		int cp;
		while ((cp = rd.read()) != -1) {
			sb.append((char) cp);
		}
		return  sb.toString();
	}
	public static JSONObject postRequestFromUrl(String url, String body) throws IOException, JSONException {
		URL realUrl = new URL(url);
		URLConnection conn = realUrl.openConnection();
		conn.setDoOutput(true);
		conn.setDoInput(true);
		PrintWriter out = new PrintWriter(conn.getOutputStream());
		out.print(body);
		out.flush();
		InputStream instream = conn.getInputStream();
		try {
			BufferedReader rd = new BufferedReader(new InputStreamReader(instream, Charset.forName("UTF-8")));
			String jsonText = readAll(rd);
			JSONObject json = new JSONObject(jsonText);
			return json;
		} finally {
			instream.close();
		}
	}
	public static JSONObject getRequestFromUrl(String url) throws IOException, JSONException {
		URL realUrl = new URL(url);
		URLConnection conn = realUrl.openConnection();
		InputStream instream = conn.getInputStream();
		try {
			BufferedReader rd = new BufferedReader(new InputStreamReader(instream, Charset.forName("UTF-8")));
			String jsonText = readAll(rd);
			JSONObject json = new JSONObject(jsonText);
			return json;
		} finally {
			instream.close();
		}
	}
	public static void main(String[] args) throws IOException, JSONException {
		// 请求示例 url 默认请求参数已经URL编码处理
		String url = "https://taobao/item_get/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&num_iid=652874751412&is_promotion=1";
		JSONObject json = getRequestFromUrl(url);
		System.out.println(json.toString());
	}

}

JavaScript(在浏览器端或 Node.js 环境)

4. 进行安全认证(如果需要)

有些 API 接口为了保证安全性,要求调用方进行身份认证,常见的认证方式有:

总之,使用封装好的 API 接口要先透彻理解其文档要求,再正确地在合适的开发环境下发起请求并妥善处理响应及相关认证等事务,这样才能有效地利用 API 实现相应的功能。

  • 在浏览器中,可以使用 fetch API,示例 GET 请求代码如下:

    fetch('https://taobao/item_get/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({"num_iid":"652874751412","is_promotion":"1"})// request parameters here
    })
    .then(response => response.json())
    .then(data => console.log(data))
    .catch(error => console.error(error));
    

    3. 发起请求并处理响应

    按照接口要求构造好请求(设置好请求方法、参数、请求头等等)后,向 API 接口对应的地址发起请求。

  • 处理成功情况:当收到的响应状态码表示成功(常见如 200 系列状态码,比如 200 表示成功获取资源、201 表示成功创建资源等),则根据响应数据的格式进行解析,提取出需要的信息用于后续业务逻辑处理,比如在界面上展示数据或者进一步基于返回的数据进行其他 API 调用等操作。

  • 处理失败情况:如果响应状态码表示请求出现错误(比如 400 系列可能是客户端请求错误,像参数格式不对等;500 系列通常表示服务器端出现故障等),需要根据具体状态码以及可能返回的错误信息提示来排查问题,比如调整请求参数、检查网络连接等,必要时联系 API 提供方协助解决。

  • API Key:调用方需要在请求中带上特定的 API Key,可能放在请求头中(如 Authorization: Bearer YOUR_API_KEY 的形式)或者作为参数传递,具体看接口文档要求。

  • OAuth:相对复杂些的授权机制,需要按照 OAuth 的流程,比如先获取授权码,再用授权码换取访问令牌等步骤,然后在请求中携带相应的令牌来访问受保护的 API 资源。