API
Приклад створення
- Створюється окремий файл, де буде знаходитися апі(в директорії controllers), також необхідно додати рут апі до route.js файлу.
Приклад руту файлу
module.exports = ({ routerWrapper }) => routerWrapper
.add({
path: '/api-user/filter-list/:token?', // url для виклику апі
controller: (opt) => require('./controller/filter-list')(opt), // Шлях до файлу з апі
access: 'public', // тип доступу до апі
param: {
// Параметри запиту (query)
query: {
id: /\d+/,
filter: /\d+/,
sql: /[\d_]+/,
path: /[\w-]+/,
list: /[\w\-,.]+/,
nocache: /\d+/,
token: /[\w\-,.]+/, full: /\d+/,
},
// Параметри шляху (params)
params: {
token: /[\w.-]+/,
},
},
});
Приклад структури файлу апі
module.exports = async function filterList({
funcs, hostname, headers, nocache: nocache1, token, lang, logger, // параметри
}) {
try {
// код основної частини апі
} catch (err) {
return { status: 500, error: err.toString() };
}
};
Приклад отримання даних за допомогою апі geojson
Тестування апі
Для тестування апі в параметри потрібно передавати метод апі та url з відповідними параметрами, з якими воно викликається.
describe('table api', async () => {
it('/api-user/filter-list/:table', async () => {
const res = await app.inject({
method: 'GET',
url: '/api-user/filter-list/md.mb_doc.table?nocache=1',
});
assert.equal(res.statusCode, 200);
});
});