Azure发布:无法更新Azure中的API
我试图从Visual Studio中发布我的.net3.1 WebApp. Visual Studio失败了"开始更新API"步骤,这是Visual Studio的输出: Build started... 1>------ Build started: Project: WebApplication_XXX, Configuration: Release Any CPU ------ 1>WebApplication_XXX -> C:\Users\YYYY\source\repos\WebApplication_XXX\WebApplication_XXX\bin\Release\netcoreapp3.1\WebApplication_XXX.dll 1>Done building project "WebApplication_XXX.csproj". 2>------ Publish started: Project: WebApplication_XXX, Conf
0 2024-04-16
编程技术问答社区
Swagger有没有可能从URL查询字符串中获取授权令牌?
在.NET核心项目中,我添加了一个安全定义(底部的代码),该定义在页面中添加了一个授权按钮,并且用户可以输入API键 - 一切正常. 是否可以在URL中指定API键,以便Swagger自动使用它而不是必须输入它?喜欢/swagger/index.html?authorization=0123456789或这种效果. 现有代码: services.AddSwaggerGen(c => { ... c.AddSecurityDefinition("api key", new ApiKeyScheme() { Description = "Authorization query string expects API key", In = "query", Name = "authorization", Type = "apiKey" }); var requirements = new Dictionary
0 2024-04-16
编程技术问答社区
当Authorize标签不包含角色时,我没有得到一个范围复选框,Ajax授权请求也没有发送范围。
更新2:如果我更改控制器授权标签 [Authorize] 到这个 [Authorize(Roles = "Read")] 然后,我获得了范围选择的复选框,而AJAX令牌请求包含正确的范围并成功完成.但是,我仍然得到了红色感叹号. 看起来像Swagger或Swashbuckle要求角色与范围定义相匹配吗?使用SwashBuckle时是否可以使用应用程序流量没有定义的台面?如果是这样,您该如何工作?我必须在操作过滤器类中手动设置范围吗?如果无法在授权标签中列出角色的情况下使用swashbuckle,那么我需要知道如何在IdentityServer3中分配客户角色. 更新3 如果我将操作过滤器更改为类似的内容,则示波器会出现,但是在选择范围并单击授权之后,页面只需重新加载. Ajax授权首先已成功发送. 这更接近,但是授权仍然不坚持(不确定这里使用什么术语,但Stick似乎总结了.)我如何获得授权? public void Apply(Operation ope
0 2024-04-16
编程技术问答社区
使用swashbuckle添加文字段
我正在使用 redoc 记录我的ASP. NET CORE 2.2 API. live redoc demo 在顶部(例如"简介")具有一组部分(例如"简介") html.我想在我的API中生成类似的部分,但看不到如何做. 基本上我有: services.AddSwaggerGen(c => { c.SwaggerDoc(...); c.IncludeXmlComments(...); c.AddSecurityDefinition("OAuth2", ...); }); 及以后: app.UseReDoc(c => { c.SpecUrl = "/swagger/v1/swagger.json"; c.RoutePrefix = ""; }); 我已经浏览了IntelliSense选项,以及swashbuckle readme =" https://github.com/domaindrivendev/swashbuck
0 2024-04-16
编程技术问答社区
Swagger.netcore 3.1中的Web Api,用swagger UI设置日期时间格式
我想知道是否有人可以帮助我,我想从 中更改Swagger UI的日期格式 2020-03-07T14:49:48.549Z to 07-03-2020T14:49 我正在尝试删除秒,并将日期格式放入" dd/mm/yyyy hh:mm "中,现在我尝试了 services.AddControllers() .AddNewtonsoftJson(options => { var dateConverter = new Newtonsoft.Json.Converters.IsoDateTimeConverter { DateTimeFormat = "dd'/'MM'/'yyyy HH:mm:ss" }; options.SerializerSettings.Converters.Add(dateC
0 2024-04-15
编程技术问答社区
我如何设置Swashbuckle和Swagger UI使用Open ID Connect Discovery进行授权,以便它能提供正确的承载令牌?
如何设置Swashbuckle和Swagger UI以使用Open ID Connect Discovery授权(在我的情况下为Azure AD)? 这是我到目前为止的(不工作的)Swaggergen设置,基于/7453 : SwaggerGenOptions c => { OpenApiInfo apiInfo = new() { /* ...snip... */ }; c.SwaggerDoc("v1", apiInfo); IncludeXmlFileForSwagger(c); // Defines the Open ID Connect discovery scheme - see also https://stackoverflow.com/a/66147996/7453 OpenApiSecurityScheme mainScheme = new() { Type = SecuritySchem
0 2024-04-15
编程技术问答社区
swashbuckle-从另一个项目的模型中添加模型和示例值
我正在使用Swagger记录我的.NET C# API,当我的模型在另一个项目上时,Swagger就崩溃了,没有加载任何东西. 当我从Visual Studio加载示例WebAPI项目时,它使用同一项目上的模型,并且有效: 但是,当我使用其他项目的模型时,它只是在加载任何东西之前就崩溃了. 我有一个API项目和一个业务项目.我的模型是在我的Buisiness项目上存储(并在此需要共享)的视图模型. 有什么办法可以指示我的模型定义在哪里? 解决方案 我最近在IIS上托管的Web API项目工作时也处理了类似的情况.我被要求为来自两个不同项目的所有查看模型和模型启用XML文档. 以下是工作主要步骤的摘要: 启用有关相关项目的XML文档(请参阅在这里) 对于每个项目,请先构建它,然后在项目中包含XML文件.将文件"复制到输出目录"的属性设置为"复制是更新",以确保将其复制到服务器的bin文件夹. 在Swagger Config,Indoke In
0 2024-04-15
编程技术问答社区
浏览器刷新或电脑重启后永久存储Swagger UI令牌
是否有任何方法可以在本地计算机或开发环境中永久地将Swagger UI变成Swagger UI? 我们正在测试Net Core API,并且还通过Angular 8运行:开发,重建,编写代码,每天每天100次测试Swagger API. 寻找方法,将令牌存储在下面,因此不必继续重新进入. 随着分钟的加起来,可能很麻烦,消耗的时间. 也许我们可以从开发人员桌面中的外部文件中读取令牌.令牌仍保持不变,即使在计算机重新启动后,开发人员也不需要重新进入令牌.也许在appsettings.json或任何文件中? 或无论如何都向净核心Visual Studio环境注入代码,不会在源控件中公开令牌? 答案应运行所有Swagger UI和API从角度环境中运行, 仅在质量检查和生产中需要进入令牌 使用Angular和Net Core 2.0 C#, 解决方案 适应我的其他答案在您的情况下,您的设置可以如下: wwwroot/swashbuckle.htm
0 2024-04-15
编程技术问答社区
使用Swagger在ASP.NET核心中实现OAuth
我想在我的Web应用程序中实现OAuth,为此我在startup.cs 中添加了以下代码 public static IServiceCollection AddSwaggerDocumentation(this IServiceCollection services) { services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo { Title = "CombiTime API v1.0", Version = "v1" }); c.AddSecurityDefinition("OAuth2", new OpenApiSecurityScheme { Type = SecuritySchemeType.OAuth
0 2024-04-15
编程技术问答社区
Swagger-Web API-可选的查询参数
[HttpGet] [Route("students")] [SwaggerOperation(Tags = new[] { "Student" })] [SwaggerResponse(HttpStatusCode.OK, Type = typeof(ResponseModel>))] [SwaggerResponseExample(HttpStatusCode.OK, typeof(StudentResponseExample))] [SwaggerResponse(HttpStatusCode.InternalServerError)] public IHttpActionResult SearchStudent() { IDictionary searchParams = null; searchParams = ControllerContext.GetQueryStrings
0 2024-04-15
编程技术问答社区
如何用Swashbuckle、Swagger和NSwag的自定义模型夹子?
我有一个ASP.NET核心Web API,其中包含以下端点. [HttpGet] [Route("models/{ids}")] [Produces(typeof(IEnumerable))] public IActionResult Get ( [ModelBinder(typeof(CsvModelBinder))] IEnumerable ids ) { // Get models return Ok(models); } 此端点获取IDS(例如/models/a,b,c)的CSV列表,并返回相应的Model对象的JSON数组. CsvModelBinder是IModelBinder的自定义实现,我写的是将ID的CSV列表分成IEnumerable,我可以在查询中使用该列表来查找对象.这一切都很好. 我现在要做的是使用NSWAG生成客户端库,但是事实证明这是有问题
0 2024-04-15
编程技术问答社区
在 C# 中移除 k__BackingField(通过 Swashbuckle / Swagger 查看)
我在所有默认设置的ASP.NET WebAPI项目中使用Swashbuckle 5.它序列化了我的方法的输出,以便向我展示答复的模式.我正在收到看起来像这样的文档: Response Class (Status 200) Model Model Schema [ { "k__BackingField": "string", "k__BackingField": "string", "k__BackingField": 0 } ] 这是通过以下C#代码 生成的 /// /// Fetches all system configuration items /// /// List of items pub
0 2024-04-14
编程技术问答社区
禁用Swagger中的 "试用 "功能
对于不同的语言,这个问题被提出了很多.经过大量(毫无结果的)浏览后,我感到很愚蠢,但是我还是要问 本文档是指在看起来像JavaScript的 https://github.com/swagger.com/swagger-appi/swagger-api/swagpi/swagger-ui/ssues/3725 我尝试将该代码添加为注射JavaScript资源: c.InjectJavaScript(thisAssembly, "MyProject.Scripts.swagger-plugins.js"); .js文件中的代码 const DisableTryItOutPlugin = function() { return { statePlugins: { spec: { wrapSelectors: { allowTryItOutFor:
0 2024-04-14
编程技术问答社区
用ASP.NET Core Web API重命名Swashbuckle 6(Swagger)中的模型
我正在使用ASP.NET Core Web API使用Swashbuckle 6(Swagger).我的模型具有DTO作为后缀,例如, public class TestDTO { public int Code { get; set; } public string Message { get; set; } } 如何将其重命名为仅在生成文档中的"测试"?我尝试使用名称添加数据合同属性,但这无济于事. [HttpGet] public IActionResult Get() { //... create List return Ok(list); } 解决方案 弄清楚了...与此处的答案相似: swashbuckle重命名的数据类型 唯一的区别是该属性现在称为CustomSchemaids,而不是Schemaid: options.CustomSchemaIds(schemaIdStrategy); 我只是
0 2024-04-14
编程技术问答社区
将查询字符串参数添加到我的Swagger Specs
我正在使用我的Web API使用swashbuckle(swagger for c#).我有几个返回列表的终点,我允许用户在querystring 中添加一个perpage和page params 示例: http://myapi.com/endpoint/?page=5&perpage=10 我看到Swagger确实支持"查询"中的参数,但是我该如何使Buckle呢? 我在其中的一篇评论中提到了我通过创建一个自定义属性以允许我完成所需的工作来解决问题的评论.以下是我解决方案的代码: [AttributeUsage(AttributeTargets.Method, Inherited = false, AllowMultiple = true)] public class SwaggerParameterAttribute : Attribute { public SwaggerParameterAttribute(string name, string d
0 2024-04-14
编程技术问答社区
使用Swashbuckle 5.x在Generic T参数引用属性上指定nullable = true
我最近使用Swashbuckle 5与Newtonsoft Json Nuget一起将API升级为.NET Core 3.1服务器,该nuget生产OpenAPI 3模式.然后,我使用NSWAG生成C#API.以前,我有一个带有Swashbuckle 4的.NET Core 2.2服务器,生成了Swagger 2.0 API模式. 我有一个通用响应类,用于所有响应,其中包含一些有关响应诸如状态代码和消息的元数据,以及含有响应肉的通用t的有效载荷属性. 当响应是错误代码时,我将有效负载属性设置为NULL.我正在努力寻找一种定义我的API的方法,以便swashbuckle和nswag组合产生的C#API,这将使有效载荷属性在避难所中无效. (Swagger 2.0/swashbuckle 4无问题). 尽我所能,有效载荷属性始终获取注释[Newtonsoft.Json.JsonProperty("payload", Required = Newtonsoft.Json.Re
0 2024-04-14
编程技术问答社区
C#.NET Core Swagger试图使用多个API版本,但是所有终点都在所有文档中
我们正在尝试将API版本分为不同的招摇文档.我们已经配置了 https://github.com/github.com/domaindrivendev/, swashbuckle.aspnetcore#生成 - multiple-swagger-documents . 所以我们配置了两个这样的版本: services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo { Title = "My API - V1", Version = "v1" }); c.SwaggerDoc("v2", new OpenApiInfo { Title = "My API - V2", Version = "v2" }); }) 我们还配置为在Swagger UI中看到它们.这样: app.UseSwagger(); app.UseSwaggerUI(c => { c.SwaggerEndpoin
0 2024-04-14
编程技术问答社区
Swashbuckle参数描述
我正在使用SwaggerResponse属性来装饰我的API控制器操作,这一切都很好,但是当我查看生成的文档时,参数的描述字段是空的. 是否有一种基于属性的方法来描述操作参数(而不是XML注释)? 解决方案 使用最新的swashbuckle,或者更好地说至少说我正在使用的是,参数的描述字段现在可以正确显示为输出. 确实需要满足以下条件: xml评论必须启用并配置为Swagger 参数应用[FromRoute],[FromQuery],[FromBody]等明确装饰. 对于方法类型(get/post/put等)的情况相同,该方法应用[Http...] 装饰 用 xml评论描述参数 一个完整的样本看起来像这样: /// /// Short, descriptive title of the operation /// /// /// More elaborate d
0 2024-04-14
编程技术问答社区
如何在WebAPI中使用Swagger作为IAppBuilder的欢迎页
我尝试使用 Swagger 与Microsoft Webapi 2. 目前,我已经在方法中打了以下电话. appBuilder .ConfigureOAuth() .UseWebApi(configuration) .UseWelcomePage(); 如果我想使用Swagger,我必须使用此URL" https://localhost:44300/skagger "好. 我希望我的主页重定向到我的Swagger的URL,也许如下,但该样本不起作用. appBuilder ... .UseWelcomePage("/swagger"); 有什么想法吗? 解决方案 我通过在Routeconfig.cs中添加路线来获得这种工作方式: public static void RegisterRoutes(RouteCollection routes) { route
0 2024-04-14
编程技术问答社区
Swagger 2.0不支持。带路径的多重操作
我已经在WebAPI 2应用程序中集成了Swagger.当应用程序具有单个控制器时,它可以正常工作. 当我在应用程序中添加第二个控制器时.我有以下错误: 发生了一个错误.","异常":" Swagger 2.0不支持:带有路径'api/cordential'和方法'get'的多个操作.有关潜在的解决方法,请参见配置设置 - \" ResolveConflictingActions \"," exceptionType":" System.notsupportedException"," stacktrace"," stacktrace":"在swashbuckle.swagerswagger.swagger.swaggergerator.defaggergeneratoroptions.defaultConfrictConfictionsRictionsReslictionsResolver(ienumare) \ r \ n在swashbuckle.swagger.swagger
0 2024-04-14
编程技术问答社区