喜欢 swagger/swashbuckle 但 node.js?
Like swagger/swashbuckle but for node.js?
是否有任何 node express 工具可以自动为 现有 项目生成 swagger 文档?类似于 swashbuckle?
我也一直在研究这个,对你有帮助的项目是 swagger-node-express. swagger-ui,应该作为 swagger-node-express 的依赖项出现。 Swagger-node-express 包装 express 并将其公开为一个新接口,这意味着您将更改代码以使其工作。这是路线的样子(取自他们的文档)
var findById = {
'spec': {
"description" : "Operations about pets",
"path" : "/pet.{format}/{petId}",
"notes" : "Returns a pet based on ID",
"summary" : "Find pet by ID",
"method": "GET",
"parameters" : [swagger.pathParam("petId", "ID of pet that needs to be fetched", "string")],
"type" : "Pet",
"errorResponses" : [swagger.errors.invalid('id'), swagger.errors.notFound('pet')],
"nickname" : "getPetById"
},
'action': function (req,res) {
if (!req.params.petId) {
throw swagger.errors.invalid('id');
}
var id = parseInt(req.params.petId);
var pet = petData.getPetById(id);
if (pet) {
res.send(JSON.stringify(pet));
} else {
throw swagger.errors.notFound('pet');
}
}
};
"Pet"类型还是你自己定义的地方,这里就不重写他们的文档了
这将生成一个文件,swagger-ui 可以使用它来为您提供一个自包含的自记录系统。 swagger-node-express 的文档足以设置它(不要忘记设置 swagger 路径,我做到了)。
swagger.configureSwaggerPaths("", "/docs", "");
在向您展示了理论上可以满足您要求的工具之后,让我解释一下为什么我得出的结论是我不会使用它们。
- 需要大量代码更改 - 真的比创建工作少吗
您自己的 swagger.yml 文件?我不这么认为。
- 手动创建 swagger.yml 文件不太可能阻碍您的项目。
- 虽然 swagger-node-express 还没有被描述,但它的 github 回购不再存在,它被包装到 swagger-node 中,但那个项目并没有真正提到它
- 我会对任何意味着我需要包装快递的工具保持警惕 - 这不是我想要做的事情。
TL;DR:
有可能进行大量代码更改 - 虽然可能不是您想要的。
是否有任何 node express 工具可以自动为 现有 项目生成 swagger 文档?类似于 swashbuckle?
我也一直在研究这个,对你有帮助的项目是 swagger-node-express. swagger-ui,应该作为 swagger-node-express 的依赖项出现。 Swagger-node-express 包装 express 并将其公开为一个新接口,这意味着您将更改代码以使其工作。这是路线的样子(取自他们的文档)
var findById = {
'spec': {
"description" : "Operations about pets",
"path" : "/pet.{format}/{petId}",
"notes" : "Returns a pet based on ID",
"summary" : "Find pet by ID",
"method": "GET",
"parameters" : [swagger.pathParam("petId", "ID of pet that needs to be fetched", "string")],
"type" : "Pet",
"errorResponses" : [swagger.errors.invalid('id'), swagger.errors.notFound('pet')],
"nickname" : "getPetById"
},
'action': function (req,res) {
if (!req.params.petId) {
throw swagger.errors.invalid('id');
}
var id = parseInt(req.params.petId);
var pet = petData.getPetById(id);
if (pet) {
res.send(JSON.stringify(pet));
} else {
throw swagger.errors.notFound('pet');
}
}
};
"Pet"类型还是你自己定义的地方,这里就不重写他们的文档了
这将生成一个文件,swagger-ui 可以使用它来为您提供一个自包含的自记录系统。 swagger-node-express 的文档足以设置它(不要忘记设置 swagger 路径,我做到了)。
swagger.configureSwaggerPaths("", "/docs", "");
在向您展示了理论上可以满足您要求的工具之后,让我解释一下为什么我得出的结论是我不会使用它们。
- 需要大量代码更改 - 真的比创建工作少吗 您自己的 swagger.yml 文件?我不这么认为。
- 手动创建 swagger.yml 文件不太可能阻碍您的项目。
- 虽然 swagger-node-express 还没有被描述,但它的 github 回购不再存在,它被包装到 swagger-node 中,但那个项目并没有真正提到它
- 我会对任何意味着我需要包装快递的工具保持警惕 - 这不是我想要做的事情。
TL;DR: 有可能进行大量代码更改 - 虽然可能不是您想要的。