是否可以在 IBM API Connect 的 API 路径中使用通配符

问题描述 投票:0回答:3

我需要将所有满足某种模式的 API 调用路由到特定服务。例如“/register/student”、“register/teacher”、“register/employee”都应该转到一个微服务。我可以使用一些通配符或模式定义上述路径(不是每个 API 的绝对路径),以便任何与模式匹配的请求:“/register/**”,都应该转到一个特定的微服务。

ibm-cloud apiconnect
3个回答
1
投票

您可以在路径定义中使用路径参数和操作开关来控制各种模式的流程。

paths:
  'register/{myParam}':
    get:
      responses:
        '200':
          description: 200 OK
    parameters:
      - name: myParam
        type: string
        in: path
        required: true

0
投票

您好,您可以创建一个“Base Path”“/resgister”,然后您可以创建与某些http方法(get、post等)关联的路径“strong text/”。然后,您可以使用 javascript/gatewayscrip 和一些正则表达式来过滤 $(request.path) 和 $(request.search) 的逻辑。

但是,如果您想将所有请求发送到某个独特的特定微服务,则只需执行路径的第一部分,然后使用“Proxy”策略。


0
投票

我发现这个讨论 https://community.ibm.com/community/user/integration/discussion/wildcard-characters-in-path-parameters#bm99498f7b-a8a1-4a6e-875e-e01a4dd65d28

如何点 https://www.ibm.com/docs/en/api-connect/10.0.1.x?topic=definition-defining-paths-api

1 个或多个参数的示例对我来说没问题

/读取/{+参数}: 得到: 回应: “200”: 描述:200 好 参数: - 名称:+参数 类型:字符串
必填:真实 在:路径

但是我找不到0个或多个参数的好语法

有些事情比如:

  /read/{*params}:
get:
  responses:
    '200':
      description: 200 OK
parameters:
  - name: *params
    type: string        
    in: path

但这对我不起作用

如果您有任何想法......

© www.soinside.com 2019 - 2024. All rights reserved.