#response #mocking #server #condition #http #external #team

app mocked

您友好的HTTP模拟响应服务器

3个版本

0.1.2 2024年6月2日
0.1.1 2024年6月1日
0.1.0 2024年5月25日

#121 in HTTP服务器

Download history 186/week @ 2024-05-24 330/week @ 2024-05-31 28/week @ 2024-06-07 7/week @ 2024-06-14

每月 138 次下载

自定义许可证

33KB
704

mocked

您友好的HTTP模拟响应服务器。

为什么?

mocked 支持您在软件开发过程中的需求。以下是一些原因:

  • mocked 允许您包含可能在不同开发阶段变化的来自外部文件的响应。在这种情况下,您不需要更新 mocked 配置。
  • 它允许开发者将测试的系统与外部依赖隔离。这在测试与外部服务交互的组件时特别有用。通过使用 mocked,开发者可以模拟外部服务的行为,并确保测试的系统按预期运行。
  • 当多个团队在相互交互的不同组件上工作时,mocked 可以用来模拟仍在开发中的服务。这使得团队可以并行工作,而无需等待彼此。
  • 使用 mocked,开发者可以完全控制服务器的响应。这使得测试系统在不同响应和难以用真实服务器复制的场景下的行为成为可能。

config.yaml格式

mocked 使用 YAML 格式的配置文件进行配置。

示例

routes:
  - path: /v1/login
    methods:
      - POST
      - PUT
    conditions:
      - type: HeaderContains
        with:
          name: Authorization
          values:
            - Basic
        response:
          status: 200
          headers:
            Content-Type: application/json
          body:
            file: resp.json
  - path: /v1/search/:type/:version
    methods:
      - POST
    conditions:
      - or:
          - type: PathParam
            with:
              name: type
              values:
                - foo
                - bar
          - type: PathParam
            with:
              name: version
              values:
                - 1
                - 2
        response:
          status: 200
          headers:
            Content-Type: application/json
          body: >
            Hello, World
            This is a body
            and it uses multiple
            lines

配置

字段 类型 描述 必需
routes 路由 mocked 检查的所有规则的配置。

路由

字段 类型 描述 必需
path 字符串 资源的路径。这可能包括可以使用匹配器检查的路径参数。路径参数以冒号(:)开头
methods 列表(字符串) 路由响应的HTTP方法列表。
conditions 条件 一旦匹配到路由,就会检查的单个或多个条件。条件还包含在匹配的情况下返回的响应。

条件

字段 类型 描述 必需
type 字符串 单个条件的类型。如果只需要使用一个条件,则可以使用此功能。
with 类型为 type 的条件检查所需的属性。仅在此处用于单个条件。
or 定义一个条件列表,通过逻辑“或”运算符组合,表示至少有一个条件为真时,输出为真。
并且 定义一个条件列表,通过逻辑“与”运算符组合,表示所有条件都必须为真时,输出为真。
响应 响应 响应定义。

如果没有使用单个条件或使用“或”和“与”组合的条件,条件始终评估为真。

字段 类型 描述 必需
type 字符串 单个条件的类型。如果只需要使用一个条件,则可以使用此功能。
with 类型为 type 的条件检查所需的属性。仅在此处用于单个条件。

并且

字段 类型 描述 必需
type 字符串 单个条件的类型。如果只需要使用一个条件,则可以使用此功能。
with 类型为 type 的条件检查所需的属性。仅在此处用于单个条件。

过滤器类型

PathParam

字段 类型 描述 必需
名称 字符串 要匹配的路径参数名称。
列表(字符串)或列表(数字) 要匹配的属性值。可以是字符串或数字。

HeaderContains

字段 类型 描述 必需
名称 字符串 要匹配的报头名称。
列表(字符串) 必须包含报头值的字符串列表。

响应

字段 类型 描述 必需
状态 数字 要返回的HTTP状态码。
报头 map(字符串,字符串) 要添加到响应中的报头映射。
主体 主体 要添加到响应的主体。

主体

字符串主体

字符串主体包含yaml格式的字符串。它可能以|开头以保留换行符,或者以>开头以将yaml多行字符串转换为单行响应字符串。

包含主体

字段 类型 描述 必需
包含 字符串 要包含到响应中的文件路径。如果不存在,服务器返回内部服务器错误(500)

依赖项

~14-26MB
~416K SLoC