docs: update README with API overview
This commit is contained in:
parent
f2727dbc35
commit
61b126297b
120
README.md
120
README.md
@ -1,2 +1,120 @@
|
||||
# auv-locker-sdk
|
||||
# AUV 智能取餐柜 Java SDK
|
||||
|
||||
Java SDK for AUV Smart Locker API. Maven + JDK 8 + Apache HttpClient 4.5 + Jackson.
|
||||
|
||||
## Quick Start
|
||||
|
||||
```java
|
||||
AuvClient client = AuvClient.builder()
|
||||
.appId("66666")
|
||||
.secretKey("mySecret")
|
||||
.build();
|
||||
|
||||
// 存取业务 API
|
||||
CreateOrderResponse resp = client.storage().createOrder(request);
|
||||
|
||||
// 辅助功能 API
|
||||
DeviceStatusResponse status = client.aux().queryDeviceStatus(request);
|
||||
|
||||
client.close();
|
||||
```
|
||||
|
||||
## Project Structure
|
||||
|
||||
```
|
||||
auv-locker-sdk/
|
||||
├── src/main/java/com/auv/locker/
|
||||
│ ├── AuvClient.java # Unified entry point
|
||||
│ ├── config/
|
||||
│ │ ├── AuvConfig.java # Configuration (appId, secretKey, timeouts)
|
||||
│ │ └── GatewayType.java # Gateway enum (STORAGE / AUX)
|
||||
│ ├── http/
|
||||
│ │ ├── AuvHttpClient.java # Apache HttpClient wrapper
|
||||
│ │ └── HmacMD5Util.java # HmacMD5 signature utility
|
||||
│ ├── model/
|
||||
│ │ ├── common/ # AuvRequest, AuvResponse
|
||||
│ │ ├── storage/ # Storage API request/response models (11 pairs)
|
||||
│ │ └── aux/ # Aux API request/response models
|
||||
│ └── service/
|
||||
│ ├── StorageApiService.java # Storage API interface (11 endpoints)
|
||||
│ ├── StorageApiServiceImpl.java
|
||||
│ ├── AuxApiService.java # Aux API interface (4 endpoints)
|
||||
│ └── AuxApiServiceImpl.java
|
||||
└── src/test/java/com/auv/locker/
|
||||
├── HmacMD5UtilTest.java # Signature tests
|
||||
└── AuvClientTest.java # Builder & config tests
|
||||
```
|
||||
|
||||
## API Overview
|
||||
|
||||
### Storage API (11 endpoints)
|
||||
|
||||
| method | Description |
|
||||
|--------|-------------|
|
||||
| `createOrder` | Create storage order |
|
||||
| `addCell` | Add cell to existing order |
|
||||
| `cancelOrder` | Cancel storage order |
|
||||
| `createPreOrder` | Create pre-order |
|
||||
| `changePreorderToFormal` | Convert pre-order to formal |
|
||||
| `takeByOrder` | Take by order ID |
|
||||
| `takeByCode` | Take by pickup code |
|
||||
| `reOpenDoor` | Re-open door (within 60s of order) |
|
||||
| `getDeviceInfo` | Get device info |
|
||||
| `getCellList` | Get cell list |
|
||||
| `getOrderList` | Query orders (paginated) |
|
||||
|
||||
### Aux API (4 endpoints)
|
||||
|
||||
| method | Description |
|
||||
|--------|-------------|
|
||||
| `device.cell.op` | Single cell operation |
|
||||
| `device.cells.ops` | Batch cell operations (Android only) |
|
||||
| `device.status.query` | Query device status & cell details |
|
||||
| `device.list.query` | Paginated device list |
|
||||
|
||||
### Gateway URLs
|
||||
|
||||
| API | HTTP | HTTPS |
|
||||
|-----|------|-------|
|
||||
| Storage | `http://plat.58auv.com/OpenApi` | `https://plat.58auv.com/OpenApi` |
|
||||
| Aux | `http://openapi.58auv.com/gateway.do` | `https://openapi.58auv.com/gateway.do` |
|
||||
|
||||
### Success Codes
|
||||
|
||||
- **Storage API**: `code == 10000`
|
||||
- **Aux API**: `code == 1 && success == true`
|
||||
|
||||
### Error Codes
|
||||
|
||||
| Code | Description |
|
||||
|------|-------------|
|
||||
| 10000 / 1 | Success |
|
||||
| 10010 | Missing parameters |
|
||||
| 10011 | bizData parameter error |
|
||||
| 10012 | Device not exists / offline |
|
||||
| 10013 | Order already exists |
|
||||
| 10014 | No available cell |
|
||||
| 10015 | Invalid order |
|
||||
| 10016 | Unsupported operation |
|
||||
| 10020 | Signature error |
|
||||
| 10021 | Duplicate pickup code, use takeByOrder |
|
||||
| 10027 | Please complete previous order first |
|
||||
| 10029 | Non-existent cell |
|
||||
| 10030 | Same request in progress |
|
||||
| 30002 | Cell allocation failed |
|
||||
|
||||
### Signature Algorithm (HmacMD5)
|
||||
|
||||
1. Collect all request parameters (except `digest`)
|
||||
2. Sort keys by ASCII order, join with `&` as `key=value` pairs
|
||||
3. Compute HmacMD5 with `secretKey`
|
||||
4. URL-encode `bizData` before sending
|
||||
|
||||
## Notifications (Callbacks)
|
||||
|
||||
| notifyType | Source | Description |
|
||||
|------------|--------|-------------|
|
||||
| `orderCompleted` | Storage API | Order completed |
|
||||
| `orderCancel` | Storage API | Order cancelled |
|
||||
| `cell_status_sync` | Aux API | Cell status change |
|
||||
| `device_status_sync` | Aux API | Device online/offline |
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user