2.3 KiB
2.3 KiB
Dewemoji API Test Document
This is a quick, repeatable checklist for validating the API locally or on staging.
Base URLs
- Local:
http://127.0.0.1:8000/v1 - Staging:
https://dewemoji.backoffice.biz.id/v1
Set once in your shell for convenience:
BASE=http://127.0.0.1:8000/v1
# BASE=https://dewemoji.backoffice.biz.id/v1
Health
curl -s "$BASE/health" | jq .
Expected: { "ok": true, ... }
Categories
curl -s "$BASE/categories" | jq 'keys | length'
Expected: number > 0.
Emoji Search
curl -s "$BASE/emojis?q=love&limit=5" | jq '.items | length'
Expected: number > 0.
Emoji Detail
curl -s "$BASE/emoji/grinning-face" | jq '.slug,.name'
Expected: "grinning-face" and "grinning face".
Rate-limit (Free tier)
curl -i "$BASE/emojis?limit=1&page=1" | grep -E "HTTP|X-RateLimit"
Expected:
X-RateLimit-LimitX-RateLimit-RemainingX-RateLimit-Reset
Note:
- Local dev disables rate limiting by default, so headers may not appear on
http://127.0.0.1.
Pro key test (if you have a key)
KEY=YOUR_LICENSE_KEY
curl -s -H "Authorization: Bearer $KEY" "$BASE/emojis?q=love&limit=50" | jq '.limit,.plan'
Expected:
limitup to 50plan=freeorpro(depending on key validation).
License verify / activate / deactivate
KEY=YOUR_LICENSE_KEY
curl -s -X POST "$BASE/license/verify" \
-H "Authorization: Bearer $KEY" | jq .
curl -s -X POST "$BASE/license/activate" \
-H "Authorization: Bearer $KEY" \
-H "Content-Type: application/json" \
-d '{"email":"you@example.com","product":"extension","device_id":"local-dev"}' | jq .
curl -s -X POST "$BASE/license/deactivate" \
-H "Authorization: Bearer $KEY" \
-H "Content-Type: application/json" \
-d '{"product":"extension","device_id":"local-dev"}' | jq .
Expected:
- verify →
{ ok: true }if key is valid. - activate →
{ ok: true }anddevice_idechoed. - deactivate →
{ ok: true }.
Caching (ETag)
ETAG=$(curl -i "$BASE/emojis?q=love&limit=5" | awk -F': ' '/^ETag:/ {print $2}' | tr -d '\r')
curl -i -H "If-None-Match: $ETAG" "$BASE/emojis?q=love&limit=5" | head -n 1
Expected: HTTP/1.1 304 Not Modified
Error responses
curl -s "$BASE/emoji/this-does-not-exist" | jq .
Expected:
error=not_found