我有Restful API,有40个端点,如:
GET / user /:id GET /用户 POST / users
等......
我想通过Apigee代理API,但仅限某些端点,例如只有一个:
GET / users
找不到如何做的方式。
当我添加代理时,它会映射到所有路由。
答案 0 :(得分:0)
假设您的目标API位于http://hostname/basepath/
假设GET /users
等同于GET http://hostname/basepath/users
等等。
您需要使用目标网址创建API代理:http://hostname/basepath
然后,在API代理内部,您需要为每个有效(允许)动词+资源路径创建资源。
例如,如果允许GET /users
和GET /users/:id
,则需要在API代理中创建2个资源:
GET /users
GET /users/*
这可以通过API代理中 Overview 部分的UI完成。
完成定义允许的资源后,您需要添加一个没有条件的Conditional Flow
,只响应错误(您可以使用提升错误策略)。这可以在API代理中的 Develop 部分中完成。
此条件流必须在最后,因此如果请求与任何资源都不匹配,它将匹配此默认条件流,它将触发您的提升故障策略。