78 lines
2.4 KiB
JavaScript
78 lines
2.4 KiB
JavaScript
/**
|
|
* HLDP-ZY://native-repo/module/step-6
|
|
* 光湖原生数据库 · 第6步 · HTTP API 服务
|
|
*
|
|
* @chain: D118 · 2026-05-31
|
|
* @module: hldp-server
|
|
* @step: 第6步 / 共8步
|
|
* @deploy: BS-SG-002 · 端口 3912
|
|
*
|
|
* 三个端点:
|
|
* POST /hldp/write — { path, content, intent, epoch }
|
|
* POST /hldp/read — { path }
|
|
* POST /hldp/search — { query }
|
|
*
|
|
* 铸渊通过 gatekeeper → localhost:3912 调用
|
|
* 不需要单独的 Token —— 在 gatekeeper 层鉴权
|
|
*/
|
|
|
|
const http = require('http');
|
|
const { hldpWrite } = require('./step-3-hldp-write');
|
|
const { hldpRead, hldpTree, buildIndex } = require('./step-4-hldp-read-tree');
|
|
const { hldpSearch } = require('./step-5-hldp-search');
|
|
|
|
const PORT = parseInt(process.env.HLDP_PORT || '3912');
|
|
const HOST = process.env.HLDP_HOST || '127.0.0.1';
|
|
|
|
const server = http.createServer(async (req, res) => {
|
|
res.setHeader('Content-Type', 'application/json');
|
|
res.setHeader('X-HLDP-Version', '3.0');
|
|
res.setHeader('X-Guardian', 'ICE-GL-ZY001');
|
|
|
|
if (req.method !== 'POST') {
|
|
res.writeHead(405);
|
|
return res.end(JSON.stringify({ error: 'POST only' }));
|
|
}
|
|
|
|
let body = '';
|
|
req.on('data', c => body += c);
|
|
req.on('end', async () => {
|
|
try {
|
|
const input = JSON.parse(body);
|
|
let result;
|
|
|
|
if (req.url === '/hldp/write') {
|
|
result = await hldpWrite({
|
|
filePath: input.path,
|
|
content: input.content,
|
|
intent: input.intent,
|
|
epoch: input.epoch
|
|
});
|
|
} else if (req.url === '/hldp/read') {
|
|
result = await hldpRead(input.path);
|
|
} else if (req.url === '/hldp/tree') {
|
|
result = await hldpTree(input.path || '');
|
|
} else if (req.url === '/hldp/search') {
|
|
result = hldpSearch(input.query);
|
|
} else if (req.url === '/hldp/index') {
|
|
result = await buildIndex();
|
|
} else if (req.url === '/hldp/health') {
|
|
result = { ok: true, service: 'guanghu-native-repo', version: '0.1.0', uptime: process.uptime() };
|
|
} else {
|
|
res.writeHead(404);
|
|
return res.end(JSON.stringify({ error: 'unknown endpoint' }));
|
|
}
|
|
|
|
res.writeHead(200);
|
|
res.end(JSON.stringify(result));
|
|
} catch (e) {
|
|
res.writeHead(500);
|
|
res.end(JSON.stringify({ ok: false, error: e.message }));
|
|
}
|
|
});
|
|
});
|
|
|
|
server.listen(PORT, HOST, () => {
|
|
console.log('HLDP-NATIVE-REPO: ready on ' + HOST + ':' + PORT);
|
|
});
|