如何将APIGEE代理限制为某些资源

时间:2014-08-08 16:37:15

标签: apigee

我有Restful API,有40个端点,如:

GET / user /:id GET /用户 POST / users

等......

我想通过Apigee代理API,但仅限某些端点,例如只有一个:

GET / users

找不到如何做的方式。

当我添加代理时,它会映射到所有路由。

1 个答案:

答案 0 :(得分:0)

假设您的目标API位于http://hostname/basepath/ 假设GET /users等同于GET http://hostname/basepath/users等等。 您需要使用目标网址创建API代理:http://hostname/basepath 然后,在API代理内部,您需要为每个有效(允许)动词+资源路径创建资源。 例如,如果允许GET /usersGET /users/:id,则需要在API代理中创建2个资源: GET /users GET /users/* 这可以通过API代理中 Overview 部分的UI完成。

完成定义允许的资源后,您需要添加一个没有条件的Conditional Flow,只响应错误(您可以使用提升错误策略)。这可以在API代理中的 Develop 部分中完成。 此条件流必须在最后,因此如果请求与任何资源都不匹配,它将匹配此默认条件流,它将触发您的提升故障策略。