当前位置: 首页 > 知识库问答 >
问题:

是否可以在OpenApi 3中创建特定于环境的路径?

傅增
2023-03-14

我的目标:

我正在应用程序中处理一组endpoint,我有一个包含所有endpoint的swagger 2.0文件。他们正在我们的测试环境中工作,但我们还不会在prod中提供他们。

我的问题是:

如果我升级到OpenApi 3,是否可以通过服务器对象隐藏我不希望在prod中可见的路径?

我不认为这是因为阅读了文档,但我很想在这里出错,因为我更希望只有一个api。yml,而不是每个环境一个。

非常感谢。

共有1个答案

申思远
2023-03-14

我做了一些测试,结果是否定的。

  • 您可以选择用户可以运行“试用”测试的服务器。这是一个很棒的功能

下面是我在在线编辑器中使用的OpenAPI yaml进行验证。我在这里使用了在线编辑器:Swagger Editor,并使用OpenAPI-规范github存储库中提供的petstore.yaml示例作为起点。我删除了除一个endpoint以外的所有endpoint以缩短内容。如果您正在启动一个开放的api文档,我建议您访问OpenAPI或Swagger以查找留档和完整示例。

openapi: "3.0.0"
info:
version: 1.0.0
title: Swagger Petstore
description: Try to not show get when prod server is chosen
license:
    name: MIT
servers:
- url: http://prod      
- url: http://test
- url: http://dev
paths:
/pets:
    get:
    summary: List all pets
    operationId: listPets
    tags:
        - pets
    parameters:
        - name: limit
        in: query
        description: How many items to return at one time (max 100)
        required: false
        schema:
            type: integer
            format: int32
    servers: 
        - url: http://test
        - url: http://dev
    responses:
        200:
        description: An paged array of pets
        headers:
            x-next:
            description: A link to the next page of responses
            schema:
                type: string
        content:
            application/json:    
            schema:
                $ref: "#/components/schemas/Pets"
        default:
        description: unexpected error
        content:
            application/json:
            schema:
                $ref: "#/components/schemas/Error"

components:
schemas:
    Pet:
    required:
        - id
        - name
    properties:
        id:
        type: integer
        format: int64
        name:
        type: string
        tag:
        type: string
    Pets:
    type: array
    items:
        $ref: "#/components/schemas/Pet"
    Error:
    required:
        - code
        - message
    properties:
        code:
        type: integer
        format: int32
        message:
        type: string
 类似资料:
  • 我想清除大部分别名定义的PowerShell会话,除了cd、sort、mkdir等常见别名 完成会话后,我希望恢复所有以前已知的别名。 无需卸载模块或注销CmdLets。我只想为我的会话清除别名命名空间。 我可以在如下列表中指定允许的别名: 如何保存和恢复别名? 或 如何启动一个干净的PoSh并只加载基本别名? 以下几行来自我的示例模块。 用法示例: 不幸的是,dir Alias:在调用我的脚本后

  • 问题内容: 在Linux中,当我从外壳中调用python时,它将复制其环境,并启动python进程。因此,如果我执行以下操作: 当python进程返回时,假设FOO最初是未定义的,它将仍然是未定义的。python进程(或任何子进程)是否可以修改其父进程的环境? 我知道您通常使用类似的方法解决此问题 但这与我的其他要求相冲突。 问题答案: 任何流程都不能更改其父流程(或任何其他现有流程的环境)。 但

  • 问题内容: 在数学课上,我们学习了如何定义新的运算符。例如: 这定义了法律。对于x和y的任何实数,x y是x + 2y。 范例:。 可以在JavaScript中定义这样的运算符吗?我知道函数可以胜任: 但我想使用以下语法: 代替这个: 哪个是最接近这个问题的解决方案? 问题答案: 最简洁的答案是不。ECMAScript(标准JS所基于的)不支持运算符重载。 可以使用sweet.js之类的第三方工具

  • 问题内容: 让我们考虑以下情况。有一个,有一个。子窗格将添加到父窗格。考虑到可以动态地添加和删除子窗格而没有任何限制和顺序的情况下,如何才能仅在可见子窗格的情况下使parentPane可见。当然childPane的可见状态也可以随时更改。是否可以创建动态Bindings.OR,以便我可以动态向其添加/删除子可见属性?如果是,那怎么办?如果没有,那么在这种情况下使用什么解决方案? 问题答案: 您可以

  • 问题内容: 如何在Python中使类或方法抽象? 我尝试像这样重新定义: 但是现在,如果我创建一个像这样继承的类: 那么我也无法实例化,因为它调用了其超类的方法。 有没有更好的方法来定义抽象类? 问题答案: 使用该模块创建抽象类。使用装饰器来声明方法摘要,并根据您的Python版本使用以下三种方式之一声明类摘要。 在Python 3.4及更高版本中,您可以从继承。在Python的早期版本中,您需要

  • AppEngine/DataStore包的文档使用标准环境,而云包的文档使用flex环境。