【问题标题】:Is it safe to use the WSO2 API Manager 1.8.0 Publisher "undocumented" API to import API definitions via Swagger json?使用 WSO2 API Manager 1.8.0 Publisher “未记录” API 通过 Swagger json 导入 API 定义是否安全?
【发布时间】:2015-04-23 11:40:56
【问题描述】:

在我的自动化构建/部署环境中,我想使用 WSO2 API Publisher Add API 调用(请参阅https://docs.wso2.com/display/AM180/Publisher+APIs

http://<host>:<port>/publisher/site/blocks/item-add/ajax/add.jag

通过提供我的 Swagger json API 定义文件来添加/更新 API,这些文件是从带有 Swagger 1.2 注释的 Java Spring @RestController 类生成的。

目前似乎不支持此功能(请参阅待处理的功能请求 https://wso2.org/jira/browse/APIMANAGER-3255 - 引入 Publisher API 以使用文件或 URL 导入 swagger 定义)。

但是,有一个未记录的 API 确实支持这一点,我已经成功测试过:

https://host:port/publisher/site/blocks/item-design/ajax/add.jag? ... &swagger={<API SWAGGER DEFINITION GOES HERE>}

使用此 API 是否安全?请详细说明答案/背景/未来计划。

“安全”的定义是:使用未记录的 API 是一种好习惯吗?如果是,为什么没有记录?如果没有,为什么不呢,使用它有什么风险,有什么副作用,未来升级到 WSO2 是否可能会破坏这个 API 的用户?为什么这个 API 提供了比文档中更多的功能?

例子:

https://localhost:9443/publisher/site/blocks/item-design/ajax/add.jag?
name=FOOAPI&
version=1.0.0&
provider=admin&
context=/home&
action=design&
visibility=public&
swagger=
{  
  "apiVersion":"1.0.0",
  "swaggerVersion":"1.2",
  "apis":[  
    {  
      "file":
      {  
        "apiVersion":"1.0.0",
        "basePath":"http://localhost:8280/home/1.0.0",
        "resourcePath":"/rest",
        "swaggerVersion":"1.2",
        "apis":[  
          {  
            "path":"/rest/v2/clients",
            "operations":[  
              {  
                "method":"GET",
                "nickname":"getCustomers",
                "responseClass":"api_clients",
                "parameters":[  
                  {  
                    "name":"firstResult",
                    "paramType":"query",
                    "description":"desc",
                    "dataType":"int",
                    "allowMultiple":false
                  },
                  {  
                    "name":"resultsPerPage",
                    "paramType":"query",
                    "description":"desc",
                    "dataType":"int",
                    "allowMultiple":false
                  }
                ],
                "summary":"The clients REST service end point returns a set of clients",
                "notes":"The clients REST service end point returns a set of clients",
                "errorResponses":[  
                  {  
                    "code":200,
                    "reason":"Clients found"
                  },
                  {  
                    "code":400,
                    "reason":"Invalid input, returns message body of Errors"
                  },
                  {  
                    "code":500,
                    "reason":"A database error has occurred"
                  }
                ],
                "produces":[  
                  "application/xml",
                  "application/json"
                ],
                "consumes":[  
                  "*/*",
                  "application/xml"
                ]
              }
        ]
      },
      "description":"",
      "path":"/rest"
    }
  ]
}

【问题讨论】:

    标签: wso2 swagger wso2-am


    【解决方案1】:

    您的问题的答案因您对“安全”的定义而异。 我的信息是,记录在案的 API 在即将发布的 1.9 版中是稳定的,并且肯定会被计划的 2.0 版更改。

    【讨论】:

    • 感谢您的快速回答。我将“安全”定义为:使用未记录的 API 是一种好习惯吗?如果是,为什么没有记录?如果不是,为什么不,使用它有什么风险?为什么这个 API 提供了比文档中更多的功能?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多