gpt4 book ai didi

asp.net-web-api - Swagger 使用自定义 swagger.json 文件 aspnet core

转载 作者:行者123 更新时间:2023-12-04 14:21:40 24 4
gpt4 key购买 nike

很确定我错过了一些明显但没有看到的东西。

如何使用更新后的 swagger.json 文件?

我把我的样板文件 swagger/v1/swagger.json 代码粘贴到 editor.swagger.io 系统中。然后我更新了描述等,向我的模型添加了示例,然后将内容保存为 swagger.json。
将文件移动到我的 api 应用程序的根目录中,将文件设置为始终复制。

 public void ConfigureServices(IServiceCollection services)
{...
services.AddSwaggerGen(c => { c.SwaggerDoc("V1", new Info {Title = "Decrypto", Version = "0.0"}); });

}


public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
...
app.UseSwagger();
//--the default works fine
// app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/V1/swagger.json", "Decrypto v1"); });
app.UseSwaggerUI(c => { c.SwaggerEndpoint("swagger.json", "Decrypto v1"); });

app.UseMvc();
}

我尝试了一些不同的变体,但似乎没有一个是诀窍。我真的不想重写 SwaggerDoc 中的工作,因为在我看来,将文档放入运行时很脏。

我要使用的自定义 swagger.json 文件如下所示:
        {
"swagger": "2.0",
"info": {
"version": "0.0",
"title": "My Title"
},
"paths": {
"/api/Decryption": {
"post": {
"tags": [
"API for taking encrypted values and getting the decrypted values back"
],
"summary": "",
"description": "",
"operationId": "Post",
"consumes": [
"application/json-patch+json",
"application/json",
"text/json",
"application/*+json"
],
"produces": [
"text/plain",
"application/json",
"text/json"
],
"parameters": [
{
"name": "units",
"in": "body",
"required": true,
"schema": {
"uniqueItems": false,
"type": "array",
"items": {
"$ref": "#/definitions/EncryptedUnit"
}
}
}
],
"responses": {
"200": {
"description": "Success",
"schema": {
"uniqueItems": false,
"type": "array",
"items": {
"$ref": "#/definitions/DecryptedUnit"
}
}
}
}
}
}
},
"definitions": {
"EncryptedUnit": {
"type": "object",
"properties": {
"value": {
"type": "string",
"example": "7OjLFw=="
},
"initializeVector": {
"type": "string",
"example": "5YVg="
},
"cipherText": {
"type": "string",
"example": "596F5AA48A882"
}
}
},
"DecryptedUnit": {
"type": "object",
"properties": {
"encrypted": {
"type": "string",
"example": "7OjLV="
},
"decrypted": {
"type": "string",
"example": "555-55-5555"
}
}
}
}
}

最佳答案

您需要配置 PhysicalFileProvider 并将您的 swagger.json 放入 wwwroot 或 PhysicalFileProvider 可访问的任何位置。之后,您可以使用 IFileProvider 访问它

引用:https://www.c-sharpcorner.com/article/file-providers-in-asp-net-core/

编辑 如果你只是添加 app.UseStaticFiles();进入您的 StartUp,您可以毫不费力地访问 wwwroot。

Reference

完全不同的方法

你也可以考虑使用 Controller/Action 来提供你的文件

public IActionResult GetSwaggerDoc()
{
var file = Path.Combine(Directory.GetCurrentDirectory(),
"MyStaticFiles", "swagger.json");

return PhysicalFile(file, "application/json");
}

关于asp.net-web-api - Swagger 使用自定义 swagger.json 文件 aspnet core,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54030633/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com