# ADR-0003 REST API (not GraphQL) ## Status Accepted ## Decision Public HTTP API is REST under `/api/v1` with envelope `{code,message,data}`. ## Reason 1. Simpler mental model for H5 + mini-program 2. Better Cursor/Claude reliability than GraphQL schemas mid-flight 3. Easier debugging with curl ## Never Never replace with GraphQL without approval + new ADR. Internal gRPC later is allowed only behind a new ADR; public clients stay REST.