Code API
Мініфікуйте, форматуйте й конвертуйте JavaScript, CSS, HTML, SVG, JSON, XML і десятки мовних пар — через чистий JSON REST-контракт.
Текст на вході → текст на виході. Надішліть фрагмент у JSON і отримайте мініфікований, відформатований чи сконвертований результат. Працює на тих самих Node-інструментах (Terser, clean-css, html-minifier-terser, prettier, svgo), що й наші вебінструменти, — тож результат збігається точно.
# Minify a JavaScript snippet
curl -X POST https://jinero.online/api/v1/code/minify \
-H "Content-Type: application/json" \
-d '{"code": "function add(a, b) { return a + b; }", "type": "js"}'
const r = await fetch("https://jinero.online/api/v1/code/minify", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ code: source, type: "js", mode: "minify" }),
});
const { output, savings_percent } = await r.json();
Усі ендпоінти публічні — ключ не потрібен. Операції — суто перетворення тексту (без GPU й обробки зображень), тож ліміти вищі, ніж в Images API.
# Anonymous limits (per IP):
# POST /code/minify 30 req/min
# POST /code/detect 30 req/min
# POST /code/convert 30 req/min
# GET /code/converters 30 req/min
# Max snippet size: 200,000 chars (~200 KB)
Стисніть або гарно відформатуйте фрагмент. Той самий ендпоінт працює в обидва боки через параметр mode — зручно, коли треба прочитати JSON-конфіг чи мініфікований в один рядок CSS.
https://jinero.online/api/v1/code/minify
| Параметр | Тип | Опис |
|---|---|---|
code |
string | Вихідний код. До 200 000 символів. |
type |
string | Одне з: js, css, html, svg, json, xml, auto. Укажіть "auto", щоб сервер сам визначив вміст. |
mode |
string | minify (за замовчуванням) або beautify. |
keep_license |
boolean | Зберігати ліцензійні коментарі /*! ... */ під час мініфікації. За замовчуванням: true. |
curl -X POST https://jinero.online/api/v1/code/minify \
-H "Content-Type: application/json" \
-d @- <<JSON
{
"code": ".btn { color: red; padding: 8px 12px; }",
"type": "css",
"mode": "minify"
}
JSON
const r = await fetch("https://jinero.online/api/v1/code/minify", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
code: cssSource,
type: "css",
mode: "minify",
keep_license: true,
}),
});
const data = await r.json();
$response = Http::post("https://jinero.online/api/v1/code/minify", [
"code" => $jsSource,
"type" => "js",
"mode" => "minify",
]);
$minified = $response->json("output");
{
"success": true,
"type": "css",
"mode": "minify",
"output": ".btn{color:red;padding:8px 12px}",
"original_size": 46,
"output_size": 27,
"savings_percent": 41.3,
"line_count": 1
}
Автоматично визначає мову фрагмента. Повертає визначений тип і список цільових форматів конвертерів, які приймають його на вхід, — зручно для випадних списків «конвертувати в…».
https://jinero.online/api/v1/code/detect
| Параметр | Тип | Опис |
|---|---|---|
code |
string | Вихідний код. До 200 000 символів. |
curl -X POST https://jinero.online/api/v1/code/detect \
-H "Content-Type: application/json" \
-d '{"code": "{\"name\": \"jinero\"}"}'
const r = await fetch("https://jinero.online/api/v1/code/detect", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ code: snippet }),
});
const { detected_type, available_targets } = await r.json();
{
"success": true,
"detected_type": "json",
"confidence": 0.97,
"available_targets": ["yaml", "toml", "xml", "csv"]
}
Усі підтримувані конвертації (from → to) зі схемою параметрів для кожної пари. Використовуйте, щоб будувати інтерфейси, які автоматично підлаштовуються, коли ми додаємо нові конвертери.
https://jinero.online/api/v1/code/converters
curl https://jinero.online/api/v1/code/converters
const r = await fetch("https://jinero.online/api/v1/code/converters");
const { converters } = await r.json();
// converters is a flat list of { id, from, to, label, optionsSchema }
{
"success": true,
"converters": [
{ "id": "json-to-yaml", "from": "json", "to": "yaml", "label": "JSON → YAML", "optionsSchema": {} },
{ "id": "css-to-scss", "from": "css", "to": "scss", "label": "CSS → SCSS", "optionsSchema": {} },
{ "id": "html-to-pug", "from": "html", "to": "pug", "label": "HTML → Pug", "optionsSchema": {} }
]
}
Конвертує фрагмент з однієї мови в іншу. Підтримує JSON↔YAML↔TOML↔XML, CSS↔SCSS, HTML↔Pug, SVG↔JSX та інші — повний список повертає /code/converters.
https://jinero.online/api/v1/code/convert
| Параметр | Тип | Опис |
|---|---|---|
code |
string | Вихідний код. До 200 000 символів. |
from |
string | Ідентифікатор вхідної мови з /code/converters. |
to |
string | Ідентифікатор цільової мови. |
options |
object | Налаштування конкретного конвертера (див. optionsSchema у /code/converters). |
curl -X POST https://jinero.online/api/v1/code/convert \
-H "Content-Type: application/json" \
-d '{"code": "{\"name\": \"jinero\"}", "from": "json", "to": "yaml"}'
const r = await fetch("https://jinero.online/api/v1/code/convert", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
code: jsonSource,
from: "json",
to: "yaml",
}),
});
const { output } = await r.json();
$res = Http::post("https://jinero.online/api/v1/code/convert", [
"code" => $cssSource,
"from" => "css",
"to" => "scss",
]);
$scss = $res->json("output");
{
"success": true,
"from": "json",
"to": "yaml",
"output": "name: jinero\n",
"notes": null
}
Стандартна семантика HTTP. Помилки повертають JSON із полем "message", що описує збій.
// 422 — validation (unknown type, oversize snippet, unsupported converter)
{ "message": "The type field must be one of: js, css, html, svg, json, xml, auto." }
// 422 — minification/conversion error from the underlying tool
{ "message": "Unexpected token at line 12" }
// 429 — rate limit exceeded
{ "message": "Too Many Attempts." }
// 500 — registry unreachable (Node helper crashed)
{ "message": "Registry unavailable" }
Про Code API jinero.online
Безкоштовний REST API для мініфікації, форматування й конвертації коду — JS, CSS, HTML, SVG, JSON, YAML, TOML, XML, Pug, SCSS — через один чистий JSON-контракт.
Перевірені інструменти
Terser, clean-css, html-minifier-terser, prettier, svgo — ті самі рушії, що й у всіх, доступні через чистий REST-контракт.
Матриця конвертацій
20+ мовних пар: JSON↔YAML↔TOML↔XML, CSS↔SCSS, HTML↔Pug, SVG↔JSX. Повний перелік — у /code/converters.
Високі ліміти запитів
30 запитів/хв з одного IP — текст на вході, текст на виході, жодного зберігання файлів.
Без стану й приватно
Фрагменти обробляються в пам'яті й ніколи не потрапляють у логи. Нічого не треба прибирати.
Часті запитання
Ні. Code API публічний, з лімітом запитів на IP — 30 запитів/хв на кожен ендпоінт. Якщо потрібні вищі ліміти, зареєструйтеся й отримайте токен.
200 000 символів (~200 КБ) на запит. Цього вистачить навіть для дуже великих зібраних CSS чи JSON-конфігів. Для величезних обсягів мініфікації запускайте Terser локально.
Так. Обидва викликають ті самі допоміжні Node-скрипти (resources/node/minify.js і resources/node/converter.js) з тими самими прапорцями, тож поведінка ідентична.
Наразі понад двадцять пар: JSON↔YAML↔TOML↔XML, CSV↔JSON, CSS↔SCSS, HTML↔Pug, SVG↔JSX та інші. Актуальний машиночитний список повертає GET /code/converters — разом зі схемами параметрів для кожної пари.
Ні. Тіло запиту записується в тимчасовий файл для Node-скрипта, обробляється й одразу видаляється. Ми не логуємо вміст коду — лише метадані запиту (розмір, тип, код статусу) для лімітів.