ztk_rust_sdk/lib.rs
1//! 折淘客 (ZheTaoKe/ZTK) Rust SDK
2//!
3//! 为 Rust 开发者提供一个类型安全、易用且功能完整的折淘客 API 客户端库,
4//! 支持淘宝、京东、拼多多、唯品会、美团、考拉、饿了么、抖音等多个电商平台的 API 调用。
5//!
6//! # 特性
7//!
8//! - **类型安全** - 利用 Rust 类型系统在编译时捕获错误
9//! - **模块化** - 各平台独立,支持按需编译
10//! - **易用性** - 链式调用,Builder 模式,清晰的 API
11//! - **异步优先** - 基于 async/await 的异步 API
12//!
13//! # Cargo Features
14//!
15//! SDK 支持通过 Cargo features 按需编译各平台模块:
16//!
17//! - `taobao` - 淘宝平台模块 (默认启用)
18//! - `jd` - 京东平台模块 (默认启用)
19//! - `pdd` - 拼多多平台模块 (默认启用)
20//! - `vip` - 唯品会平台模块
21//! - `meituan` - 美团平台模块
22//! - `kaola` - 考拉平台模块
23//! - `eleme` - 饿了么平台模块
24//! - `douyin` - 抖音平台模块
25//! - `full` - 启用所有平台模块
26//!
27//! # 使用示例
28//!
29//! ```rust,ignore
30//! use ztk_rust_sdk::{ZtkClient, ZtkResult};
31//!
32//! #[tokio::main]
33//! async fn main() -> ZtkResult<()> {
34//! // 创建客户端
35//! let client = ZtkClient::new("your_appkey")
36//! .base_url("https://api.zhetaoke.com:10001")
37//! .build()?;
38//!
39//! // 调用淘宝 API (需要启用 taobao feature)
40//! #[cfg(feature = "taobao")]
41//! {
42//! // let result = client.taobao().convert_by_item_id(request).await?;
43//! }
44//!
45//! // 调用京东 API (需要启用 jd feature)
46//! #[cfg(feature = "jd")]
47//! {
48//! // let result = client.jd().convert(request).await?;
49//! }
50//!
51//! Ok(())
52//! }
53//! ```
54
55// ============================================================================
56// 公共模块 (始终可用)
57// ============================================================================
58
59/// 核心客户端模块
60pub mod client;
61
62/// 公共类型和工具模块
63pub mod common;
64
65/// 错误类型模块
66pub mod error;
67
68// ============================================================================
69// 核心类型导出
70// ============================================================================
71
72/// 折淘客 SDK 客户端
73pub use client::ZtkClient;
74
75/// 客户端构建器
76pub use client::ZtkClientBuilder;
77
78/// SDK 错误类型
79pub use error::ZtkError;
80
81/// SDK Result 类型别名
82pub use error::ZtkResult;
83
84// ============================================================================
85// 公共类型导出
86// ============================================================================
87
88/// 公共枚举和类型
89pub use common::types::{SignUrlType, SortDirection};
90
91// ============================================================================
92// 平台模块 (条件编译)
93// ============================================================================
94
95/// 淘宝平台模块
96///
97/// 提供淘宝平台相关的 API 调用功能,包括:
98/// - 高佣转链 (商品ID/淘口令)
99/// - 批量转链
100/// - 订单查询
101/// - 淘口令生成和解析
102///
103/// 需要启用 `taobao` feature
104#[cfg(feature = "taobao")]
105pub mod taobao;
106
107/// 京东平台模块
108///
109/// 提供京东平台相关的 API 调用功能,包括:
110/// - 商品转链
111/// - 京粉精选商品
112/// - 订单查询
113/// - 商品详情
114/// - 朋友圈火爆商品
115///
116/// 需要启用 `jd` feature
117#[cfg(feature = "jd")]
118pub mod jd;
119
120/// 拼多多平台模块
121///
122/// 提供拼多多平台相关的 API 调用功能,包括:
123/// - 商品转链
124/// - 商品详情 (简版/详版)
125/// - 订单查询
126/// - 授权备案
127///
128/// 需要启用 `pdd` feature
129#[cfg(feature = "pdd")]
130pub mod pdd;
131
132/// 唯品会平台模块
133///
134/// 提供唯品会平台相关的 API 调用功能,包括:
135/// - 商品转链
136/// - 授权
137/// - 订单查询
138/// - 商品详情和搜索
139///
140/// 需要启用 `vip` feature
141#[cfg(feature = "vip")]
142pub mod vip;
143
144/// 美团平台模块
145///
146/// 提供美团平台相关的 API 调用功能,包括:
147/// - 商品转链
148/// - 订单查询
149///
150/// 需要启用 `meituan` feature
151#[cfg(feature = "meituan")]
152pub mod meituan;
153
154/// 考拉平台模块
155///
156/// 提供考拉平台相关的 API 调用功能,包括:
157/// - 商品转链
158/// - 精选商品列表
159/// - 商品搜索
160/// - 订单查询
161///
162/// 需要启用 `kaola` feature
163#[cfg(feature = "kaola")]
164pub mod kaola;
165
166/// 饿了么平台模块
167///
168/// 提供饿了么平台相关的 API 调用功能,包括:
169/// - 商品转链
170/// - 订单查询
171///
172/// 需要启用 `eleme` feature
173#[cfg(feature = "eleme")]
174pub mod eleme;
175
176/// 抖音平台模块
177///
178/// 提供抖音平台相关的 API 调用功能,包括:
179/// - 商品转链
180/// - 直播间转链
181/// - 活动转链
182/// - 商品详情和搜索
183/// - 口令解析
184/// - 订单查询
185///
186/// 需要启用 `douyin` feature
187#[cfg(feature = "douyin")]
188pub mod douyin;
189
190// ============================================================================
191// 平台类型便捷导出 (条件编译)
192// ============================================================================
193
194// 淘宝平台类型导出
195#[cfg(feature = "taobao")]
196pub use taobao::{
197 BatchConvertRequest,
198 BatchConvertResponse,
199 // 请求类型
200 ConvertByItemIdRequest,
201 ConvertByTklRequest,
202 ConvertByTklResponse,
203 // 响应类型
204 ConvertResponse,
205 CreateTklRequest,
206 CreateTklResponse,
207 GoodsDetail,
208 ParseItemIdRequest,
209 ParseItemIdResponse,
210 QueryOrdersRequest,
211 QueryOrdersResponse,
212 // 全网搜索
213 SearchGoodsItem,
214 SearchGoodsRequest,
215 SearchGoodsResponse,
216 TaobaoApi,
217 TaobaoSignUrlType,
218};
219
220// 京东平台类型导出
221#[cfg(feature = "jd")]
222pub use jd::{
223 JdApi,
224 // 枚举类型
225 JdChainType,
226 // 请求类型
227 JdConvertRequest,
228 // 响应类型
229 JdConvertResponse,
230 JdEliteId,
231 JdGoodsDetailRequest,
232 JdGoodsDetailResponse,
233 JdHotGoodsRequest,
234 JdHotGoodsResponse,
235 JdOrderQueryRequest,
236 JdOrderQueryType,
237 JdOrderResponse,
238 JdSortField,
239 JingfenGoodsRequest,
240 JingfenGoodsResponse,
241};
242
243// 拼多多平台类型导出
244#[cfg(feature = "pdd")]
245pub use pdd::{
246 PddApi,
247 PddAuthorizeRequest,
248 PddAuthorizeResponse,
249 // 请求类型
250 PddConvertRequest,
251 // 响应类型
252 PddConvertResponse,
253 PddGoodsDetailFullRequest,
254 PddGoodsDetailFullResponse,
255 PddGoodsDetailSimpleRequest,
256 PddGoodsDetailSimpleResponse,
257 PddOrderQueryRequest,
258 PddOrderResponse,
259};
260
261// 唯品会平台类型导出
262#[cfg(feature = "vip")]
263pub use vip::{
264 VipApi,
265 VipAuthorizeRequest,
266 VipAuthorizeResponse,
267 // 请求类型
268 VipConvertRequest,
269 // 响应类型
270 VipConvertResponse,
271 VipGoodsDetailRequest,
272 VipGoodsDetailResponse,
273 VipOrderQueryRequest,
274 VipOrderResponse,
275 VipSearchGoodsRequest,
276 VipSearchGoodsResponse,
277};
278
279// 美团平台类型导出
280#[cfg(feature = "meituan")]
281pub use meituan::{
282 MeituanApi,
283 // 请求类型
284 MeituanConvertRequest,
285 // 响应类型
286 MeituanConvertResponse,
287 MeituanOrderQueryRequest,
288 MeituanOrderResponse,
289};
290
291// 考拉平台类型导出
292#[cfg(feature = "kaola")]
293pub use kaola::{
294 KaolaApi,
295 // 请求类型
296 KaolaConvertRequest,
297 // 响应类型
298 KaolaConvertResponse,
299 KaolaGoodsListRequest,
300 KaolaGoodsListResponse,
301 KaolaOrderQueryRequest,
302 KaolaOrderResponse,
303 KaolaSearchGoodsRequest,
304 KaolaSearchGoodsResponse,
305};
306
307// 饿了么平台类型导出
308#[cfg(feature = "eleme")]
309pub use eleme::{
310 ElemeApi,
311 // 请求类型
312 ElemeConvertRequest,
313 // 响应类型
314 ElemeConvertResponse,
315 ElemeOrderQueryRequest,
316 ElemeOrderResponse,
317};
318
319// 抖音平台类型导出
320#[cfg(feature = "douyin")]
321pub use douyin::{
322 DouyinActivityConvertRequest,
323 DouyinActivityConvertResponse,
324 DouyinActivityStatus,
325 DouyinApi,
326 DouyinAuthorSortBy,
327 DouyinAuthorType,
328 DouyinCommandType,
329 // 请求类型
330 DouyinGoodsConvertRequest,
331 // 响应类型
332 DouyinGoodsConvertResponse,
333 DouyinGoodsDetailRequest,
334 DouyinGoodsDetailResponse,
335 DouyinLiveConvertRequest,
336 DouyinLiveConvertResponse,
337 DouyinLiveStatus,
338 DouyinOrderQueryRequest,
339 DouyinOrderQueryResponse,
340 DouyinOrderQueryType,
341 DouyinParseCommandRequest,
342 DouyinParseCommandResponse,
343 DouyinProductTag,
344 DouyinSearchGoodsRequest,
345 DouyinSearchGoodsResponse,
346 // 枚举类型
347 DouyinSearchType,
348 DouyinShareStatus,
349 DouyinSortType,
350};