我的endpoint没有[FromBody]参数:
[HttpPost("{id:int}/publish")]
public async Task<IActionResult> Publish()
{
<do some stuff>
return Ok();
}
但现在我需要添加[FromBody]参数,以便旧代码在没有参数的情况下仍然能够使用此endpoint:
[HttpPost("{id:int}/publish")]
public async Task<IActionResult> Publish([FromBody] PublishRequest request)
{
<do some stuff>
return Ok();
}
但如果我以这种方式添加它,并尝试用空主体调用该endpoint,我将得到415(不支持的媒体类型)响应。
我想使此更改向下兼容。因此,应该可以在没有请求正文和内容类型标头的情况下使用此终结点。有可能吗?
可以将PublishRequest设置为可选。
[HttpPost("{id:int}/publish")]
public async Task<IActionResult> Publish([FromBody] PublishRequest? request)
{
// <do some stuff>
return Ok();
}
ATM似乎不支持可选的FromBody
参数,但在这个github问题中发布了一个可能的解决方法:
public class SomeClassModelBinder : IModelBinder
{
public async Task BindModelAsync(ModelBindingContext bindingContext)
{
var stream = bindingContext.HttpContext.Request.Body;
string body;
using (var reader = new StreamReader(stream))
{
body = await reader.ReadToEndAsync();
}
var someClass = JsonConvert.DeserializeObject<SomeClass>(body);
bindingContext.Result = ModelBindingResult.Success(someClass);
}
}
[FromBody, ModelBinder(BinderType = typeof(SomeClassModelBinder))] SomeClass request,
ngrok承诺有关其接口的兼容性和稳定性,以便您可以自信地构建集成顶部,知道在升级到较新版本时期望的更改。 兼容性承诺 Point Release (2.0.0 -> 2.0.1) - ngrok承诺在点发布之间没有突破性的变化 Minor Version Change (2.0 -> 2.1) - ngrok可能会进行小的更改,打破兼容性的次要版本更改。 ngrok承诺,任何破坏性更改将由一个版
确保您可以轻松顺利地升级您的应用程序,这对我们是很重要的。这就是为什么我们只在主 要版本里程碑才会打破兼容性。你可能熟悉 语义版本控制 ,这 就是我们在所有的 CakePHP 项目中使用的通用准则。总之,语义版本控制意味着只有主要版 本(比如2.0,3.0,4.0)可以打破向后兼容性。次要版本(比如2.1,3.1,3.2)可能会引入新 的功能,但不能破坏兼容性。错误修复版本(比如2.1.2,3.0
查看v3规范,新消息似乎是有效的,难道旧的提供程序库(v3.2.13)不支持它吗?我查看了代码,发现了这个commit,在我看来,这似乎是引入更改的地方。 从我的测试来看,新的提供程序库(3.5.12)可以处理新旧格式,但如果类路径中同时存在新的提供程序库和旧的使用者库,http契约测试将失败,并出现运行时错误。 问题:
我正在迁移到Spring Boot2.0,我的Prometheus度量有问题。 我知道千分尺是一种新的操作方法,它不像普罗米修斯的立体式那么简单,但还可以。 我的问题是,如果我现在不想更改我的度量,我就不能升级到Spring Boot2.0。我说的对吗? 我尝试了以下操作: 第1号审判 保持我的实现“原样” 将新的依赖项添加到我的应用程序(执行器已在其中) 更改中的内容以访问endpoint =>
我刚刚将我们的Nexus存储库从OSS 2.14.5-02升级到OSS 3.6.2-01。我将遗留url设置为true(如http://books.sonatype.com/nexus-book/3.1/reference/install.html#config-legacy-url中所述),但是REST API似乎不向后兼容。 例如,以下REST API在我的旧Nexus服务器上工作(它下载ja
问题内容: 我已经编辑了package.json以自定义“开始”脚本,因此它将–debug标志添加到节点: 有没有一种方法可以添加新脚本,例如调试脚本,该脚本可以执行我自定义的“开始”现在正在执行的操作? 我希望能够执行: 问题答案: 在您的package.json中定义脚本 然后您可以使用npm的运行脚本 或更短的版本