feat(endpoint): 添加路由
- 添加/connection-test用于测试meilisearch连接
This commit is contained in:
@ -3,7 +3,7 @@ import { defineEndpoint } from '@directus/extensions-sdk';
|
|||||||
export default defineEndpoint({
|
export default defineEndpoint({
|
||||||
id: 'meilisearch',
|
id: 'meilisearch',
|
||||||
handler: (router, context) => {
|
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) => {
|
router.get('/collections', async (_req, res) => {
|
||||||
const { services, getSchema } = context;
|
const { services, getSchema } = context;
|
||||||
const { CollectionsService } = services;
|
const { CollectionsService } = services;
|
||||||
@ -22,6 +22,29 @@ export default defineEndpoint({
|
|||||||
}));
|
}));
|
||||||
|
|
||||||
res.json(result);
|
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}` });
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user