我正在使用"Hello There! This is a really long string that I want split".chunked(10)
构建Web Api。我正在使用connectionString = new connectionString("mongodb://address1:27017,address2:27018,address3:27019/?replicaSet=rs0");
MongoClientSettings settings = MongoClientSettings.builder().applyConnectionString(connectionString)
.build();
settings = settings.builder().credential(credential).build();
asyncMongoClientInstance = MongoClients.create(settings);
测试端点。我的模型在不断发展,当我重构某种方法以返回与以前不同的类型时,很容易错过在MongoClientSettings settings = MongoClientSettings.builder().applyConnectionString(connectionString).credential(credential).build();
中更改控制器中的这种类型。
一个简化的示例:
Asp.Net Core 2.2
这将很好地工作,除了它将在swagger
中显示错误的返回类型(即使它实际上返回了ActionResult<T>
也会显示返回类型,如果 [ProducesResponseType(200)]
[HttpGet]
public ActionResult<string> Get()
{
int myNumber = 1;
return Ok(myNumber);
}
则显示返回类型)。有没有办法针对这种情况发出警告?
编辑1:提供更详细的示例:
swagger
如果我在string
中关注,将会得到:
我不希望它引发错误,但是警告会很好。
P.S。可能会有警告的想法来自软件包int
,该软件包在以下情况下会产生警告:
public class MyClass
{
public Guid ProductId { get; set; }
public string ProductName { get; set; }
}
public class MyOtherClass
{
public string UserId { get; set; }
public string Username { get; set; }
public DateTime CreationDate { get; set; }
}
[ProducesResponseType(200)]
[HttpGet]
public ActionResult<MyClass> Get()
{
var myOtherClass = new MyOtherClass();
return Ok(myOtherClass);
}
建造时我得到以下信息:swagger
答案 0 :(得分:0)
Swagger将返回结果报告为string
,因为这就是您要执行的操作。 int
实际上被强制为string
。您基本上只是幸运(不幸?),这在框架中是可行的。如果您返回的内容无法自动强制为返回类型,则它将引发异常。
因此,这里并没有真正的警告。如果有的话,我只会在大多数情况下避免返回字符串,或者至少开始使用更严格的类型(例如bool)来开发您的方法。例如,您可以像这样对它进行存根:
public ActionResult<bool> MyAwesomeAction()
{
return Ok(true);
}
然后,构建您的方法,当您准备进行实际收益时,将true
更改为实际收益。然后,这将导致语法错误,因为您的返回类型不能解释为bool
,并提示您也更改通用参数。