使用 Prism 和 NPM 进行 Mocking ...我需要根据路径参数中不同的消息 id 得到不同的响应

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

Swagger API 文件的外观:

**

openapi: 3.0.2
info:
  title: Message API
  description: API for returning a message
  version: 1.0.0
paths:
  /message/{messageid}:
    get:
      summary: Get a message
      description: Retrieve a message
      parameters:
        - in: path
          name: messageid
          required: true
          schema:
            type: integer
      responses:
        200:
          description: Message returned
          content:
            application/json:
              schema:
                type: string
              examples:
                2:
                  value: "Goodbye from 2, World!"
                  summary: Message 2 response
              examples:
                1:
                  value: "Goodbye from 1, World!"
                  summary: Message 1 response

**

使用以下命令执行: 棱镜模拟“.\SwaggerSignIn\sample.yml”

使用 Postman 或 Insomnia 发出请求: http://127.0.0.1:4010/message/2 http://127.0.0.1:4010/message/1

在两种情况下得到相同的响应 “1号再见,世界!”

使用 Prism Lib 进行 npm 模拟

mocking
1个回答
0
投票

这不是最干净的方法,但您可以使用硬编码的“messageid”将其分离到两个不同的端点,并将其作为参数删除。

paths:
  /message/1
  ...
  /message/2
  ...

否则我认为 Open API 不支持动态,例如根据参数决定响应。 另一种方法是使用 Prism 客户端通过代码动态指定状态、期望等。

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