Փաստաթղթեր
Սա product-facing reference է public API-ի համար։ Նույն identity, tenant, style version, avatar family, style options, size և WebP output-ը պետք է stable մնան major release-ի ընթացքում։
Core Endpoints
GET /v1/avatar: returns an avatar asset directlyGET /v1/avatar/link: stores the generated avatar in configured object storage and returns signed-link metadataGET /avatar/<kind>/<identity>/webp: path-style public avatar URLGET /docs/openapi.json: machine-readable API description
Operational Endpoints
GET /healthz-ը public է load balancers-ի և uptime checks-ի համար։ GET /metrics-ը loopback-only է և non-local peers-ի համար վերադարձնում է 404։
Namespace Support
Օգտագործիր tenant և style_version՝ products-ի կամ rollout phases-ի միջև visual identity spaces-ը առանձնացնելու համար։
GET https://hashavatar.app/v1/[email protected]&tenant=acme&style_version=v2&algorithm=sha512&kind=wizard&background=white&accessory=hat&color=deep-sea-blue&expression=cool&shape=squircle&format=webp&size=256
Anonymous IDs
Ուղարկիր internal stable id կամ one-way application hash՝ raw personal data-ի փոխարեն։
printf '%s' '[email protected]' | sha256sum | cut -d' ' -f1
Rate Limits
Public service-ը կիրառում է origin-side rate limits՝ ավելի խիստ limits-ով /v1/avatar/link-ի, persist=true ունեցող direct avatar requests-ի և /og.png-ի համար, քանի որ object storage writes-ը և Open Graph image rendering-ը ավելի թանկ են, քան direct rendering-ը։
Timeouts
Avatar generation-ը և storage operations-ը bounded են server-side timeouts-ով, որպեսզի expensive requests-ը չկարողանան origin-ը անսահման պահել։
Errors
400: invalid kind, unsupported algorithm կամ format, size կամ missing identity408: generation կամ storage timeout429: rate limit exceeded500: rendering կամ storage failure
OpenAPI
Generated clients-ի կամ tooling-ի համար օգտագործիր /docs/openapi.json.