【问题标题】:Can node-restify paths work with swagger?node-restify 路径可以与 swagger 一起使用吗?
【发布时间】:2016-01-21 22:38:33
【问题描述】:

node-restify 库允许使用像 /foo/:id 这样的路径。大摇大摆可以处理这样的路径吗?即类似的东西?

var getFoo = {
    'spec': {
        'description': 'foo library',
        'path': '/foo/:id',
        'summary': 'return foo by id',
        'type': 'string',
        'produces': ['application/json']
    },
    'action': getFooObject()
};
swagger.addGet(getFoo)

当我在我的应用中尝试这个时,http://locahost:3001/api-docs 页面看起来像:

{
    apiVersion: "0.0.1",
    swaggerVersion: "1.2",
    apis: [ 
        {
            path: "/foo"
        }
    ]
}

我尝试使用 \ 字符转义双冒号。但这并没有什么不同。还尝试用双引号替换单引号。还是没有区别。我正在使用 swagger-node-restify 库,它是来自 swagger-node 存储库的分支。我做错了什么?

【问题讨论】:

    标签: node.js swagger restify swagger-node-express


    【解决方案1】:

    您正在描述一个 swagger 1.2 项目,该项目有多个文件来描述它。您可以在此处阅读有关 swagger 1.2 规范的更多信息:

    https://github.com/OAI/OpenAPI-Specification/blob/master/versions/1.2.md

    因此,您的 API 将不会在 api-docs 位置进行描述。根据您上面的描述,它应该显示在api-docs/foo

    请注意,/api-docs 称为资源列表,它指向 Api 声明,该声明相对于 api-docs 托管为 /foo

    最后一点,swagger 规范 1.2 已经过时,而 2.0 的工具要好得多。考虑将您的项目升级到swagger-node 或其他。

    【讨论】:

    • 我正在使用库 swagger-node-restify。这就是swagger版本是1.2的原因。我将尝试直接使用 swagger-node。让我们看看。
    • 我尝试了路径http://localhost:3001/api-docs/foo。它确实存在,但没有 getFoo 函数的规范。
    • 您是否将/{id} 视为路径?
    猜你喜欢
    • 2019-12-24
    • 2013-04-02
    • 1970-01-01
    • 2018-10-09
    • 2012-10-17
    • 1970-01-01
    • 1970-01-01
    • 2015-08-04
    • 1970-01-01
    相关资源
    最近更新 更多