- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我有一个带有默认值 Controller 的基本 WebApi 实现设置。
在 reading a blog about RESTful WebApi Versioning 之后我决定将该包集成到一个新的 WebApi 项目中。
我添加了 NuGet 包 Microsoft.AspNet.WebApi.Versioning 来帮助我的 API 进行版本控制。这是我遵循的包配置说明的 URL:
https://github.com/Microsoft/aspnet-api-versioning/wiki/Configuring-Your-Application
我的值 Controller 非常简单。我已将装饰添加到我的 Get 方法中。这是代码:
[Authorize]
[ApiVersion("1.0")]
[Route("api/v{version:apiVersion}/values")]
public class ValuesController : ApiController
{
// GET api/values
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
public string Get(int id)
{
return "value";
}
// POST api/values
public void Post([FromBody]string value)
{
}
// PUT api/values/5
public void Put(int id, [FromBody]string value)
{
}
// DELETE api/values/5
public void Delete(int id)
{
}
}
不幸的是,一旦我将以下代码行添加到 Controller 中,整个事情就崩溃了:
[Route("api/v{version:apiVersion}/values")]
这是对正在返回的错误消息的一瞥:
The inline constraint resolver of type 'DefaultInlineConstraintResolver' was unable to resolve the following inline constraint: 'apiVersion'.
Line 82: GlobalConfiguration.Configure(WebApiConfig.Register);
这是我的 Startup.cs 中的代码
public void Configuration(IAppBuilder app)
{
// HTTP Configuration
HttpConfiguration config = new HttpConfiguration();
//config.MapHttpAttributeRoutes();
// Configure API Versioning
config.AddApiVersioning();
var constraintResolver = new DefaultInlineConstraintResolver()
{
ConstraintMap =
{
["apiVersion"] = typeof( ApiVersionRouteConstraint ) // or mvc routing?
}
};
config.MapHttpAttributeRoutes(constraintResolver);
// Configure the API to accept token authentication
ConfigureOAuthTokenConsumption(app);
// CORS
app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
// Configure the Authorization server
ConfigureOAuth(app);
// Use WebAPI
app.UseWebApi(config);
// Moved from global.asax
AreaRegistration.RegisterAllAreas();
GlobalConfiguration.Configure(WebApiConfig.Register);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
我认为调用 AddApiVersioning 并提供文档中概述的 constraintResolver 可以解决问题,但事实并非如此。现在我正在为下一步该做什么而苦恼。
config.AddApiVersioning();
var constraintResolver = new DefaultInlineConstraintResolver()
{
ConstraintMap =
{
["apiVersion"] = typeof( ApiVersionRouteConstraint ) // or mvc routing?
}
};
config.MapHttpAttributeRoutes(constraintResolver);
有什么建议吗?
最佳答案
您应该在 WebApiConfig.cs 文件中解析版本
var constraintResolver = new DefaultInlineConstraintResolver()
{
ConstraintMap =
{
["apiVersion"] = typeof( ApiVersionRouteConstraint )
}
};
config.MapHttpAttributeRoutes(constraintResolver);
在映射路由之前。我的意思是在 config.Routes.MapHttpRoute() 之前
关于c# - 类型 'DefaultInlineConstraintResolver' 的内联约束解析器无法解析以下内联约束 : 'apiVersion' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43740894/
尝试通过apiVersion更改部署的kubectl edit deployment example时,为什么会出现错误? 我必须删除并重新创建对象吗? 最佳答案 之所以会这样,是因为资源创建后只能更
我对中间件层次结构有疑问。我使用一个 Controller /操作创建了非常简单的 Web api [Route("api/v1/values")] public class ValuesCont
由于 Kubernetes 删除了已弃用的 API,我试图找出集群中资源的 apiVersion 并遇到以下行为。 在为特定部署请求定义时,它会报告旧的 api 版本: > kubectl get d
由于 kubectl convert 自 v1.14 起已弃用,并将在 v1.17 中删除,您如何转换 Kubernetes 对象的 API 版本? 还有其他简单安全的解决方案吗? 最佳答案 这正在
所以我确实更新了 list 并将 apiVersion: extensions/v1beta1 替换为 apiVersion: apps/v1 apiVersion: apps/v1 kind: De
我有一个带有默认值 Controller 的基本 WebApi 实现设置。 在 reading a blog about RESTful WebApi Versioning 之后我决定将该包集成到一个
我有一个关于.Capabilities.APIVersions.Has 的问题 - 我不确定它是如何工作的 我有以下功能: {{- define "fybrik.certManagerApiVersi
有没有一种简单的方法可以列出与 API 版本相关的所有 kubernetes 对象?比方说,API 版本 apps/v1beta1 即将弃用,我想知道我的集群中是否有任何对象使用此版本,我如何才能找到
我正在 ASP.NET Core 中构建一个 Web API,并且正在试验多个版本。我正在按照以下说明为每个版本创建 Swagger 文档:https://github.com/domaindrive
考虑这个资源声明: resource storageAccountFileSvc 'Microsoft.Storage/storageAccounts/fileServices@2021-09-01'
在 documentation ,提到应该使用 apiVersion 属性来指定资源的 REST API 版本。 然而,在这个101-automation-configuration模板,此处提到的资
在 documentation ,提到应该使用 apiVersion 属性来指定资源的 REST API 版本。 然而,在这个101-automation-configuration模板,此处提到的资
我继承了一个遗留的 WebAPI 系统,该系统目前在路由模式中使用下划线来表示版本。例如/api/1_0/account, /api/1_1/account等 我正在尝试更新自动生成的文档以使用 Sw
我正在尝试获取特定的 Microsoft Azure 网站资源,以便我可以更改其某些属性。要获取单个资源,Get-AzureResource 需要 ApiVersion 属性。我在哪里可以找到这个?
我正在尝试检查整个订阅过程中是否存在资源,但似乎 50% 的资源需要与其他资源不同的 apiVersion。 我觉得很奇怪,Azure 与其 apiVersions 不一致,但是有人拥有或知道当前准确
我已在我的 Core 2.1 API 项目中成功设置 API 版本控制。 http://localhost:8088/api/Camps/ATL2016/speakers?api-version=x.
我正在尝试创建一个 vulkan 实例。这是我的代码: vk::ApplicationInfo appInfo("Test", 1, nullptr, 0, 0); vk::InstanceCreat
尝试设置 Vulkan 应用程序,但是当我将 apiVersion 设置为 VK_VERSION_1_0 时,我从 vkCreateInstance 得到了 VK_ERROR_INCOMPATIBLE
需要您在执行 Kubernetes YAML 文件时就某个问题提供指导。 我的kubectl版本如下: Client Version: version.Info{Major:"1", Mino
我正在尝试使用 Microsoft.Azure.Management.Consumption 3.0.2 包来访问使用情况和消耗数据。 但是在调用 UsageDetails.List 时出现以下错误:
我是一名优秀的程序员,十分优秀!