API其实就是应用程序接口(Application Programming Interface)的简称。API 是一些功能、定义或者协议的集合,提供应用程序或者程序开发人员基于软件访问一组例程的能力,对外封装完善,调用时无需学习 API内部源码,依据 API文档功能说明书来使用即可。
那么API到底是一种什么技术呢?
如今具有开放式的业务体系结构将是下一代网络的重要特征之一。其中,关键的技术之一就是网络控制与应用层之间的应用程序接口(API)。通过应用程序接口,业务开发商 、独立软件提供商 (ISV)等第三方应用可以获得使用现有网络资源的能力 ,从而方便 、灵活地为客户提供所需的业务。API接口已经深入应用到各个网页与APP中。
公共参数
请求地址:api-gw.onebound.cn/1688/item_s…
名称 | 类型 | 必须 | 描述 |
---|---|---|---|
key | String | 是 | 调用key(必须以GET方式拼接在URL中) |
secret | String | 是 | 调用密钥 |
api_name | String | 是 | API接口名称(包括在请求地址中)[item_search,item_get,item_search_shop等] |
cache | String | 否 | [yes,no]默认yes,将调用缓存的数据,速度比较快 |
result_type | String | 否 | [json,jsonu,xml,serialize,var_export]返回数据格式,默认为json,jsonu输出的内容中文可以直接阅读 |
lang | String | 否 | [cn,en,ru]翻译语言,默认cn简体中文 |
version | String | 否 | API版本 |
请求参数
请求参数:q=衣服&page=1&sort=
参数说明:q:搜索关键字
page:翻页
sort:排序(lookback回头率,normal综合)
响应参数
Version: Date:
名称 | 类型 | 必须 | 示例值 | 描述 |
---|---|---|---|---|
items | item[] | 0 | 关键字搜索工厂数据 | |
page | Int | 0 | 1 | 页码 |
real_total_results | Int | 0 | 1373474 | 工厂数量 |
total_results | Int | 0 | 1900 | 工厂数量 |
page_size | Int | 0 | 20 | 接口返回数量 |
pagecount | Int | 0 | 100 | 总页数 |
item | item[] | 0 | 宝贝详情数据 | |
title | String | 0 | 厦门高定供应链管理有限公司 | 工厂名称 |
pic_url | String | 0 | air.1688.com/pages/vr_vi… | VR视角 |
num_iid | Mix | 0 | 商品ID | |
seller_nick | String | 0 | 厦门高定 | 工厂昵称 |
shop_name | String | 0 | 厦门高定供应链管理有限公司 | 工厂名称 |
tpservice_year | String | 0 | 7 | 诚信通年限 |
wwresponse_score | String | 0 | 0.86 | 服务响应率 |
ht_score | String | 0 | 0.26 | 回头率 |
compliance_score | String | 0 | 1 | 准时履约率 |
buyer_will | String | 0 | 777 | 意向客户数 |
level | String | 0 | 金牌制造 | 工厂水平 |
level_score | String | 0 | 2星 | 工厂水平星级 |
area | String | 0 | 厦门 | 工厂地址 |
seller_id | String | 0 | b2b-2200658542804b59e0 | 工厂ID |
cat_name | String | 0 | 广告衫T恤;男式T恤;男式卫衣 | 工厂服务类目名称 |
zhuy | String | 0 | sale.1688.com/sale/zgc/sc… | 工厂主页地址 |
请求示例
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://api-gw.onebound.cn/1688/item_search_factory/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&q=衣服&page=1&sort=";
JSONObject json = getRequestFromUrl(url);
System.out.println(json.toString());
}
}