Skip to main content

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);
});
});