45 lines
993 B
Markdown
45 lines
993 B
Markdown
# `POST /article/{sku}/image`
|
||
|
||
Protected. Requires a valid session cookie (`credentials: 'include'`).
|
||
|
||
Add article image
|
||
|
||
Accepts a full-size AVIF body (`Content-Type: image/avif`).
|
||
Full: stored as-is when already AVIF and ≤1000×1000; otherwise scaled to max 1000×1000.
|
||
Thumb always scaled to max 200×200. Stores hash/thumbhash, links `articlepic`.
|
||
Auth like GET by SKU.
|
||
|
||
|
||
## Path parameters
|
||
|
||
| Param | Required | Type | Description |
|
||
|-------|----------|------|-------------|
|
||
| `sku` | yes | string | Article SKU |
|
||
|
||
## Body
|
||
|
||
Raw binary (`image/avif`).
|
||
|
||
## Response `201`
|
||
|
||
Image stored and linked
|
||
|
||
```json
|
||
{
|
||
"image": { … }
|
||
}
|
||
```
|
||
|
||
## Errors
|
||
|
||
| Status | Description |
|
||
|--------|-------------|
|
||
| 400 | Missing body or invalid image — `{"error":"…"}` |
|
||
| 401 | Unauthorized — `{"error":"…"}` |
|
||
| 403 | Not authorized — `{"error":"…"}` |
|
||
| 404 | Article not found — `{"error":"…"}` |
|
||
|
||
---
|
||
|
||
_Generated from `@openapi` JSDoc. Do not edit by hand — run `npm run docs:api`._
|