我有一个ASP.NET Web Api 2应用程序.我添加了Swashbuckle(Swagger for .NET).它显示我的端点没问题,但是为了发送请求,我需要将Authorization标头附加到该请求.如果我理解为了做到这一点我需要修改index.html文件(https://github.com/swagger-api/swagger-ui#how-to-use-it)所以我git克隆了Swashbuckle项目为了修改index.html并添加一些标题.
这是在Swashbuckle中发送带有请求的Authorization标头的唯一方法吗?
我使用ASP.NET和Swagger公开了一个接受POST的复杂类型.它有许多具有不同限制长度的字符串字段.我怎样才能在Swagger UI中反映出来?
我使用Swagger为我的ASP.NET Core API使用Swashbuckle,它在一个单独的文档中描述了我的API,并为所有这些信息提供了一个很好的UI.
使用像HATEOAS,HAL或JSON-LD这样的东西是否有任何优点可以与Swagger一起修改文档本身?
以下是使用Swagger和HAL的人的示例.
在 OpenAPI 架构中,它包含可选元素operationId。
这是如何使用的以及为什么它是可选的?好吧,至少对于 .NET Core 库“Swashbuckle”,他们说它是可选的。
我的猜测是它与 SDK 的使用方式有关。例如,我可以从任何有效的 OpenAPI 模式创建 Typescript SDK...所以我猜测它与 Typescript SDK 的生成方式和消费/使用方式有某种联系?
我创建了一个新的Web Api项目,添加了Asp.Net Identity并配置了OAuth,如下所示:
OAuthOptions = new OAuthAuthorizationServerOptions
{
TokenEndpointPath = new PathString("/Token"),
Provider = new ApplicationOAuthProvider(PublicClientId),
AuthorizeEndpointPath = new PathString("/api/Account/ExternalLogin"),
AccessTokenExpireTimeSpan = TimeSpan.FromDays(14),
AllowInsecureHttp = true
};
Run Code Online (Sandbox Code Playgroud)
这一切都很好,我可以调用/ Token端点并获得一个持有者令牌.
问题是,在Swagger中我无法发现这一点,因为它不在控制器上,因此没有为它生成xml文档.
有谁知道在我的Swagger文档中显示此登录端点的方法?
谢谢.
另外,我应该说Swagger文档正在与我的所有控制器一起工作,这只是我错过了一个明显的方法 - 如何登录.
我正在尝试使用Swashbuckle.AspNetCore(3.0.0)帮助创建的Autorest和Swagger文档来生成REST API客户端.
生成的swagger文档似乎是正确的,除了操作名称不是很好.
"/api/Addresses/{id}": {
"get": {
"tags": [ "Address" ],
"operationId": "ApiAddressesByIdGet",
"consumes": [],
"produces": [],
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"type": "string",
"format": "uuid"
}
],
"responses": { "200": { "description": "Success" } }
},
Run Code Online (Sandbox Code Playgroud)
我在许多文章和SwashBuckle.AspNetCore的官方文档中看到我可以使用属性来装饰我的控制器方法,如下所示:
[HttpGet]
[Produces("application/json")]
[ProducesResponseType((int)HttpStatusCode.NotFound)]
[ProducesResponseType(typeof(List<AddressDto>), (int)HttpStatusCode.OK)]
[SwaggerOperation("GetAllAdresses")]
public async Task<IActionResult> GetAllAsync()
{
....
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,我收到了一个错误:无法找到SwaggerOperationAttribute!
我验证了安装的nuget包,它们是:
有人可以帮帮我吗?请
我有控制器喜欢
public class UserController : ApiController
{
[Route("api/user")]
IHttpActionResult GetUser() { ... }
}
public class ResumeController : ApiController
{
[Route("api/user/resumes")]
IHttpActionResult GetResumes() { ... }
}
Run Code Online (Sandbox Code Playgroud)
有没有办法(除了通过推出自己ISwaggerProvider或将两个控制器合并为一个来覆盖默认实现)来强制执行组名?就像是
public class UserController : ApiController
{
[Route("api/user")]
[MagicalAttributeName(Group="User")]
IHttpActionResult GetUser() { ... }
}
public class ResumeController : ApiController
{
[Route("api/user/resumes")]
[MagicalAttributeName(Group="User")]
IHttpActionResult GetResumes() { ... }
}
Run Code Online (Sandbox Code Playgroud) 如何对ASP.NET WebAPI操作进行注释,以便swagger元数据包含我的资源支持的内容类型?
具体来说,我希望文档显示我的一个资源可以返回'原始' application/json,application/xml但现在也返回一个新格式,application/vnd.blah+json或者+xml.
我在C#中编写了许多API,并使用Swashbuckle创建了一个"Swagger"文档网站.
对于Authenticate REST调用,我在标头中使用API Key.
我创建了一个页面,允许下载任何编程语言的特定客户端,如下所示:https://generator.swagger.io
我想让用户使用自己的API密钥生成客户端,这样他就不需要再在代码中手动设置API密钥了.
在我的Swagger JSON中,我有这个安全性定义:
"securityDefinitions": {
"apiKey": {
"type": "apiKey",
"description": "API Key Authentication",
"name": "X-ApiKey",
"in": "header"
}
}
Run Code Online (Sandbox Code Playgroud)
在Swagger Client Generator的页面中,我发现这个模型允许设置客户端选项,但我无法找到客户端代码中API密钥如何(以及是否)可以硬编码(或任何其他类型的授权).
GeneratorInput {
spec (object, optional),
options (object, optional),
swaggerUrl (string, optional),
authorizationValue (AuthorizationValue, optional),
securityDefinition (SecuritySchemeDefinition, optional)
}
AuthorizationValue {
value (string, optional),
type (string, optional),
keyName (string, optional)
}
SecuritySchemeDefinition {
description (string, optional),
type (string, optional)
}
Run Code Online (Sandbox Code Playgroud)
我想我必须设置AuthorizationValue对象,但没有关于它的文档(或者我找不到它).
能够让生成的客户端lib为所有请求添加任意HTTP头就足够了.
在这种情况下,我们可以添加:
X-ApiKey:{whatever the key is}
Run Code Online (Sandbox Code Playgroud)
有人有想法吗?
非常感谢!
我有以下枚举:
public enum TicketQuestionType
{
General = 1,
Billing = 2,
TMS = 3,
HOS = 4,
DeviceManagement = 5
}
Run Code Online (Sandbox Code Playgroud)
和模型类:
public class TicketCreateApi
{
public string Subject { get; set; }
public TicketQuestionType QuestionType { get; set; } = TicketQuestionType.General;
public TicketType Type { get; set; } = TicketType.Problem;
public TicketStatus Status { get; set; } = TicketStatus.New;
public TicketPriority Priority { get; set; } = TicketPriority.Normal;
public string Description { get; set; }
public List<string> Attachments { …Run Code Online (Sandbox Code Playgroud) asp.net-web-api swagger swashbuckle asp.net-core swashbuckle.aspnetcore
swashbuckle ×10
swagger ×4
swagger-2.0 ×3
swagger-ui ×3
asp.net-core ×2
api-key ×1
c# ×1
hateoas ×1
json ×1
json-ld ×1
openapi ×1