ArangoDB Foxx Microservices入门教程:此示例的有效URI是什么?

时间:2018-12-21 16:46:48

标签: arangodb arangodb-foxx

Getting started · ArangoDB v3.4.0 Documentation此处的教程使用以下代码:

// 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 :(得分:2)

假设您的服务器实例通过HTTP在localhost:8529上运行,则数据库为_system,Foxx服务的安装点为/getting-started,然后是{{1}的URL }端点为:

/sum

请注意,数据库http://localhost:8529/getting-started/sum是特殊的:它是默认数据库,这意味着您不必显式指定它。以下网址是等效的:

_system

如果将Foxx服务安装在另一个数据库中,请用实际数据库的名称替换http://localhost:8529/_db/_system/getting-started/sum

_system是POST路由(/sum),并且期望的主体(HTTP请求的内容/有效负载)由joi模式描述:属性名称为{{1}的JSON对象},并将一个数字数组(一个或多个数字)作为属性值。

使用Curl,您可以像这样查询服务:

router.post(...)

(请求方法values由Curl推断)

响应是一个带有属性键curl --data "{\"values\":[5,6]}" http://localhost:8529/getting-started/sum且计算出的数字作为属性值的JSON对象:

-X POST

如果您尝试改为在浏览器中访问URL,它将是一个GET请求(没有有效负载),并失败并显示HTTP错误: 405方法不允许