Skip to content

Справочник API ​

mineproj генерирует полностью статический REST-подобный API в dist/api/v1/. Каждая конечная точка отдаёт статический JSON — бэкенд не требуется.

Конверт ​

Каждый ответ следует этой структуре:

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

Конечные точки ​

Конечная точкаKindОписание
/api/v1/projects.jsonProjectListПолный список проектов
/api/v1/projects/<slug>.jsonProjectДетальная информация об одном проекте
/api/v1/tags.jsonTagListВсе теги с количеством проектов
/api/v1/categories.jsonCategoryListВсе категории
/api/v1/collections.jsonCollectionListВсе коллекции
/api/v1/profile.jsonProfileДанные профиля
/api/v1/stats.jsonStatsАгрегированная статистика
/api/v1/search.jsonSearchIndexИндекс MiniSearch
/api/v1/feed.jsonFeedЭлементы ленты
/api/v1/manifest.jsonManifestСамодокументируемый список конечных точек

Параметры запроса (режим разработки) ​

ПараметрПримерОписание
q?q=webПолнотекстовый поиск
tag?tag=web,gameФильтрация по тегам (AND)
category?category=webФильтрация по категории
status?status=releasedФильтрация по статусу
sort?sort=createdAt:descПоле и направление сортировки
page?page=2Номер страницы
pageSize?pageSize=20Элементов на странице
lang?lang=enЛокаль для локализованных данных

Клиентский SDK ​

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

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

React-хуки:

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

function MyComponent() {
  const { data, loading } = useProjects({ tag: 'web' });
  return <div>{loading ? 'Загрузка...' : data.length} проектов</div>;
}

Released under the Apache-2.0 License.