feat(endpoint): 添加路由

- 添加/connection-test用于测试meilisearch连接
This commit is contained in:
2025-10-21 08:52:04 +00:00
parent 7d05acdd23
commit ef8ad6436a

View File

@ -3,7 +3,7 @@ import { defineEndpoint } from '@directus/extensions-sdk';
export default defineEndpoint({
id: 'meilisearch',
handler: (router, context) => {
router.get('/', (_req, res) => res.send('Hello, World!'));
router.get('/', (_req, res) => res.send('Hello, MeiliSearch!'));
router.get('/collections', async (_req, res) => {
const { services, getSchema } = context;
const { CollectionsService } = services;
@ -22,6 +22,29 @@ export default defineEndpoint({
}));
res.json(result);
})
});
router.post('/connection-test', async (req, res) => {
const { host, apiKey } = req.body;
console.log(req.body);
try {
const response = await fetch(`${host}/health`, {
method: 'GET',
headers: {
'Authorization': `Bearer ${apiKey}`,
},
});
if (!response.ok) {
throw new Error(`MeiliSearch health check failed with status ${response.status}`);
}
const data = await response.json();
if (data.status === 'available') {
return res.json({ success: true, message: '连接成功' });
} else {
return res.json({ success: false, message: `返回状态异常:${JSON.stringify(data)}` });
}
} catch (error) {
return res.json({ success: false, message: `连接失败:${(error as Error).message}` });
}
});
}
});