使用 WSO2 API Manager 1.8.0 发布者"undocumented" API 通过 Swagger json 导入 API 定义是否安全?



在我的自动构建/部署环境中,我希望使用WSO2 API发布服务器Add API调用(请参阅https://docs.wso2.com/display/AM180/Publisher+API)

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-引入发布者API以使用文件或URL导入型锻定义)。

然而,有一个没有文档的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"
}
]
}

您的问题的答案因您对"安全"的定义而异。我的信息是,文档化的API在即将到来的1.9版本中是稳定的,并且肯定会被计划的2.0版本所改变。

最新更新