Skip to content

Referência da API ​

O mineproj gera uma API totalmente estática estilo REST em dist/api/v1/. Cada endpoint serve JSON estático — sem necessidade de backend.

Envelope ​

Toda resposta segue esta estrutura:

json
{
  "apiVersion": "v1",
  "kind": "ProjectList",
  "generatedAt": "2026-01-01T00:00:00.000Z",
  "schemaVersion": 1,
  "data": { ... }
}

Endpoints ​

EndpointKindDescrição
/api/v1/projects.jsonProjectListLista completa de projetos
/api/v1/projects/<slug>.jsonProjectDetalhe de um único projeto
/api/v1/tags.jsonTagListTodas as tags com contagens
/api/v1/categories.jsonCategoryListTodas as categorias
/api/v1/collections.jsonCollectionListTodas as coleções
/api/v1/profile.jsonProfileDados do perfil
/api/v1/stats.jsonStatsEstatísticas agregadas
/api/v1/search.jsonSearchIndexÍndice MiniSearch
/api/v1/feed.jsonFeedItens do feed
/api/v1/manifest.jsonManifestLista de endpoints auto-descritiva

Parâmetros de Consulta (modo dev) ​

ParâmetroExemploDescrição
q?q=webPesquisa de texto completo
tag?tag=web,gameFiltrar por tags (AND)
category?category=webFiltrar por categoria
status?status=releasedFiltrar por status
sort?sort=createdAt:descCampo e direção de ordenação
page?page=2Número da página
pageSize?pageSize=20Itens por página
lang?lang=enLocalidade para dados localizados

SDK do Cliente ​

ts
import { createApiClient } from '@mineproj/client';

const api = createApiClient({ baseUrl: 'https://example.com' });
const projects = await api.getProjects();
const project = await api.getProject('meu-projeto');
const results = await api.search('web');

React hooks:

ts
import { useProjects, useProject, useTags, useSearch } from '@mineproj/client';

function MeuComponente() {
  const { data, loading } = useProjects({ tag: 'web' });
  return <div>{loading ? 'Carregando...' : data.length} projetos</div>;
}

Released under the Apache-2.0 License.