Учебное пособие по началу работы с ArangoDB Foxx Microservices: что такое рабочий URI для этого примера? - PullRequest
0 голосов
/ 21 декабря 2018

Учебное пособие здесь Начало работы · Документация ArangoDB v3.4.0 использует этот код:

// continued
router.post('/sum', function (req, res) {
const values = req.body.values;
res.send({
    result: values.reduce(function (a, b) {
    return a + b;
    }, 0)
});
})
.body(joi.object({
values: joi.array().items(joi.number().required()).required()
}).required(), 'Values to add together.')
.response(joi.object({
result: joi.number().required()
}).required(), 'Sum of the input values.')
.summary('Add up numbers')
.description('Calculates the sum of an array of number values.');

Что представляет собой пример URI, который предоставляет ожидаемые параметры (два числа)?

1 Ответ

0 голосов
/ 22 декабря 2018

Если ваш экземпляр сервера работает на localhost:8529 по протоколу HTTP, база данных - _system, а точка монтирования службы Foxx /getting-started, то URL-адрес конечной точки /sum:

http://localhost:8529/getting-started/sum

Обратите внимание, что база данных _system является особенной: это значение по умолчанию, что означает, что вам не нужно указывать ее явно.Следующий URL-адрес эквивалентен:

http://localhost:8529/_db/_system/getting-started/sum

Замените _system именем фактической базы данных, если служба Foxx смонтирована в другой.

/sum - это маршрут POST (router.post(...)), а ожидаемое тело (содержимое / полезная нагрузка HTTP-запроса) описывается схемой joi: объект JSON с именем атрибута values и в качестве значения атрибута числовой массив (один илибольше чисел).

С помощью Curl вы можете запросить услугу следующим образом:

curl --data "{\"values\":[5,6]}" http://localhost:8529/getting-started/sum

(метод запроса -X POST определяется с помощью Curl)

Ответ представляет собой объект JSON с ключом атрибута result и вычисленным числом в качестве значения атрибута:

{"result":11}

Если вы попытаетесь получить доступ к URL-адресу в браузеревместо этого это будет запрос GET (без полезной нагрузки), который завершится с ошибкой HTTP: 405 Метод не разрешен

...