API REST Lingoo ADM

Base URL: https://lingoo.top (entrada PHP = pasta adm, sem /public na URL). Rotas abaixo são relativas a essa base.

Exemplos de URL completos no deploy atual: https://lingoo.top + rota (ex.: https://lingoo.top/api/v1/decks).

Ir ao painel admin


Autenticação (Firebase / Google)

POST /api/v1/auth/sync

Body JSON: {"idToken":"<Firebase ID token>"}. Valida o token com o projeto FIREBASE_PROJECT_ID e cria/atualiza o usuário (email, avatar, plano).

Rotas com Bearer

Envie Authorization: Bearer <idToken> (token Firebase atual do usuário).

Listar baralhos

GET /api/v1/decks

Parâmetros de query opcionais (Postman → Params):

Header opcional: Authorization: Bearer … para preencher access.can_study_full, access.reason, is_saved e meta.viewer.

Resposta: JSON com meta (total, feed, sort, free_only_applied — se o catálogo veio restrito a gratuitos, viewer) e data (inclui icon_url, cover_image_url, pricing, access, is_saved; em feed=saved pode vir saved_at).

Detalhe do baralho (formato próximo ao app)

GET /api/v1/decks/{id}

Retorna cabecalho (com icon_url, cover_image_url, precificacao), cards, e campos locked, preview_limit, total_cards. Baralhos premium sem direito retornam só prévia de cartas.


Postman

  1. Crie uma requisição GET para {{baseUrl}}/api/v1/decks.
  2. Variável baseUrl = https://lingoo.top (dev: http://127.0.0.1:8080 com php -S -t adm). Se o vhost expuser a API em /adm, use https://lingoo.top como baseUrl.
  3. Headers: aceite application/json (opcional).

OpenAPI: importe o arquivo adm/docs/openapi.yaml no Postman (Import → arquivo).